JSONとは?
- JSON(JavaScript Object Notation)は「JavaScript Object Notation」の略で、{} や [] などJavaScriptオブジェクトの表現形式で記述する。
- JavaScriptで使われることを想定したデータ構造なので、JavaScriptと相性が良い。
- Python、Java、PHPなどの幅広い言語でも使われている。JavaScriptなどのクライアント言語とPythonなどのサーバサイド言語間のデータのやり取りで使われることが多い。
JSONの基本の書き方
- JSONはキーと値がペアになっており、キーは文字列で、必ずダブルクォーテーション(")で囲む必要がある。
※文字列をシングルクォーテーションで囲むとエラーになる。 - JSONは {} の中に、"キー"と"値"をコロン(:)で区切って記述する。
{"key1" : "value1"}
カンマで区切ると、キーと値の組み合わせを複数記述できます。
{"key1":"value1", "key2":"value2", "key3":"value3"}
行数が多くなってくると読みにくくなるので、適宜、改行とインデントを加える。
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
JSONの値のデータ型
JSONの値は、文字列、数値、真偽値、null、オブジェクト、配列のいずれかを指定できる。
- 文字列(ダブルクォーテーションで囲む)
- 数値(ダブルクォーテーションで囲まない)
- bool値(true または false)
- 配列
- オブジェクト
- null(ヌル値)
サンプル(文字列、数値、bool値、配列、オブジェクト、null)
{
"key1":"value1",
"key2":100,
"key3":true,
"key4":["apple","orange","banana"],
"key5":{
"area": "tokyo",
"country": "Japan",
"date": "2024/04/10"
},
"key6":null
}
JSONの階層構造(オブジェクト/配列のネスト)
JSONはネスト(入れ子構造)をサポートしており、オブジェクト内に別のオブジェクトや配列を含めることができる。
例1:値がオブジェクトになっている場合
{
"key1":{
"key1-1":"value1-1",
"key1-2":"value1-2",
"key1-3":"value1-3"
},
"key2":"value2",
"key3":"value3"
}
例2:値がオブジェクトで、オブジェクトの中にがオブジェクトになっている場合
{
"key1":{
"key1-1":{
"key1-1-1":"value1-1-1",
"key1-1-2":"value1-1-2"
},
"key1-2":"value1-2",
"key1-3":"value1-3"
},
"key2":"value2",
"key3":"value3"
}
例3:オブジェクトが配列になっている場合
[
{
"key1":"value1"
},
{
"key2":"value2"
},
{
"key3":"value3"
}
]
例4:値が配列で、配列の中がオブジェクトになっている場合
{
"key1":[
{"key1-1":"value1-1"},
{"key1-2":"value1-2"},
{"key1-3":"value1-3"}
],
"key2":"value2",
"key3":"value3"
}
例5:値が配列で、配列の中が配列になっている場合
{
"key1":[
["value1-1","value1-2"],
["value2-1","value2-2"],
["value3-1","value3-2"]
],
"key2":"value2",
"key3":"value3"
}
以上