JSON(JavaScript Object Notation)のデータ構造
JSONは{"キー":値}の形式でデータを表記します。
(複数のデータを設定したい場合は、{"キー1":値1,"キー2":値2,・・・}の形式で設定できます。)
例となるコードを下に掲載します。
{
"name": "Test San",
"score": 80,
"isStudent": true,
"skills": ["Soroban", "Instant noodle craftsperson", "SQL"],
"address": {
"street": "1234 Five Street",
"city": "tonari city",
"postalCode": 12345
}
}
コードの解説:
- "name": "Test San":値が文字列のTest Sanのため、値はダブルコーテーション""で囲む必要があります。
- "score": 80:値が数値の80のため、ダブルコーテーション""なしで設定できます。
- "isStudent": true:値がブーリアン型の場合、true,falseをダブルコーテーション""なしで設定できます。
- "skills": ["Soroban", "Instant noodle craftsperson", "SQL"]:値が配列の場合、値は中括弧[]の中にカンマ,で区切って入力します。
今回は配列に入れる内容はすべて文字列なのでダブルコーテーション""で囲っています。 - "address": {
"street": "1234 Five Street",
"city": "tonari city",
"postalCode": 12345
}
:このキーがaddressの部分では、JSON形式が2重になっています。(いわゆるネストです。)
2重になっている側でもJSON形式であることは変わらないので、streetとcityは値が文字列のため、ダブルコーテーション""で囲っています。
postalCodeは値が数値のため、値はそのまま数値だけになっています。
データの受け取り:
C#の場合、JSONのデータを受け取るためのクラスを作成して、他のクラスからPersonクラスを呼び出すことで値を取得するとわかりやすいです。
上記のJSONデータを取得するコード:
public class Person
{
public string Name { get; set; }
public int Score { get; set; }
public bool IsStudent { get; set; }
public List<string> Skills { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street { get; set; }
public string City { get; set; }
public int PostalCode { get; set; }
}
この他にも、System.IOに含まれている、Streamで受け取ってStreamReaderで文字データに直すなど、方法はいろいろあります。
※Streamで受け取る際にSystem.Netに含まれているGetResponseStream()を使います。