JS上でJSONを扱う
JS上でJSONを扱う:
こんにちは。お世話になってます。jsでjsonを扱う方法です。
jsonとは、データ形式のひとつで、よくデータを受け渡す時に使われます。
たとえば、
こういうのもjsonの一つ(のはず)。
このJSONと言うのは、JavaScriptにすごく親和性が高いものです。
(なにしろ、JSONの正式名称はJavaScript Object Notationですから)
見てのとおり、jsonはオブジェクトなんですね。
まず、説明のために幾つか知っておいてほしい知識はこれ。
-
- キーと値の間には
-
JSONには幾つか決まりがあります。なので、その決まりに従って扱わないといけません。
1. jsonは{}で囲まれ、0個以上のメンバーを含んでいなければならない。
2. メンバー以外のものは含まれてはならない。
3. メンバーはカンマで区切られてなければならない。
4. 文字列は
文字ばっかだと良くわからないので例を見てみましょう。
これはキー名が被ってます。違反ではないですが、使わないことをめちゃくちゃお勧めします。
よくわからん!ってひとは、ここからもう一度読んで、じっくり観察してみてください。
navigatorを例にとってみます。
navigatorの中身はこんな感じです。
それで、たとえば言語を取得するときは
それは、「navigatorの中のlanguageの値を見てね!」ってことです。
で、もし値がまたオブジェクトだったりすると、こうなります。
つまり「navigatorの中のlanguagesの中のlengthを見てね!」ってことになります。
今日も安定のぐでんぐでん文章でしたが、ここまで読んでいただきありがとうございました。
こんにちは。お世話になってます。jsでjsonを扱う方法です。
JSONとは?
jsonとは、データ形式のひとつで、よくデータを受け渡す時に使われます。たとえば、
こういうのもjsonの一つ(のはず)。
このJSONと言うのは、JavaScriptにすごく親和性が高いものです。
(なにしろ、JSONの正式名称はJavaScript Object Notationですから)
JSでJSONを扱ってみようか
宣言
var json={
"Key1":"value1",
"Key2":"value2",
"Key3":"value3"
}
値の参照
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.languageってしますよね。それは、「navigatorの中のlanguageの値を見てね!」ってことです。
で、もし値がまたオブジェクトだったりすると、こうなります。
navigator.languages.length。つまり「navigatorの中のlanguagesの中のlengthを見てね!」ってことになります。
今日も安定のぐでんぐでん文章でしたが、ここまで読んでいただきありがとうございました。
コメント
コメントを投稿