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を見てね!」ってことになります。
今日も安定のぐでんぐでん文章でしたが、ここまで読んでいただきありがとうございました。
コメント
コメントを投稿