JavaScript
JSON

JS上でJSONを扱う

こんにちは。お世話になってます。jsでjsonを扱う方法です。


JSONとは?

jsonとは、データ形式のひとつで、よくデータを受け渡す時に使われます。

たとえば、

無題.jpg

こういうのもjsonの一つ(のはず)。

このJSONと言うのは、JavaScriptにすごく親和性が高いものです。

(なにしろ、JSONの正式名称はJavaScript Object Notationですから)


JSでJSONを扱ってみようか


宣言

var json={

"Key1":"value1",
"Key2":"value2",
"Key3":"value3"
}

見てのとおり、jsonはオブジェクトなんですね。


値の参照

var json={

"Key1":"value1",
"Key2":"value2",
"Key3":"value3"
}
console.log(json.Key1);//value1 が帰ってくる


もう少し掘り下げると。。。


JSONの決まり

まず、説明のために幾つか知っておいてほしい知識はこれ。

- Key1とかKey2をキーといい、value1とかvalue2を値と言う。

- キーと値の間には:を入れる。"Key1":"value1"とかの間には,を入れる。

- "Key1":"value1"とかの塊をメンバーという。

JSONには幾つか決まりがあります。なので、その決まりに従って扱わないといけません。

1. jsonは{}で囲まれ、0個以上のメンバーを含んでいなければならない。

2. メンバー以外のものは含まれてはならない。

3. メンバーはカンマで区切られてなければならない。

4. 文字列は"または'で囲む。

文字ばっかだと良くわからないので例を見てみましょう。


jsonといえるもの

{"key1":"value1","key2":"value2"}

{"key1":["配列1","配列2"]}
{}
{"key1":{"key1_1":"value1","key1_2":"value2"},"key2":"value2"}
{
"hoge":["piyo",12345],
"hoho":{
"key1":"value1",
"key2":"value2"
},
"foo":"hahaha"
}


jsonといえるが非推奨

{

"Key":"foo1",
"Key":"foo2"
}

これはキー名が被ってます。違反ではないですが、使わないことをめちゃくちゃお勧めします。


jsonといえないもの

["foo":"hahah","foo2":"value"]

{"foo","piyo"}
"Key":"value"

よくわからん!ってひとは、ここからもう一度読んで、じっくり観察してみてください。


値の参照の仕方

json本体.キー名っていう感じです。

navigatorを例にとってみます。


navigator

var navigator={

"appCodeName":"Mozilla",
"appName":"Netscape",
"appVersion":"5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
"cookieEnabled":true,
"doNotTrack":null,
"geolocation":"Geolocation",
"hardwareConcurrency":2,
"language":"ja",
"languages":{0:"ja",
1:"en-US",
2:"en",
"length":3
},
....
}

navigatorの中身はこんな感じです。

それで、たとえば言語を取得するときはnavigator.languageってしますよね。

それは、「navigatorの中のlanguageの値を見てね!」ってことです。

で、もし値がまたオブジェクトだったりすると、こうなります。

navigator.languages.length

つまり「navigatorの中のlanguagesの中のlengthを見てね!」ってことになります。

今日も安定のぐでんぐでん文章でしたが、ここまで読んでいただきありがとうございました。