JSONオブジェクトをJSONオブジェクトと考えていない場合に役立ちます。JSON.parseを介してJSON文字列を実行すると、それはネイティブJavaScriptオブジェクトになります。
JavaScriptでは、オブジェクトにアクセスする方法が2つあります。
ドット表記
ドット表記は次のようになります
myObject.name
ドットが見えますか?これを使用して、任意のオブジェクトプロパティにアクセスできます(有効なドット表記名があれば、実際にはjavascriptの別のオブジェクトである可能性があります)。、、、スペース文字などの-
文字は使用できません。.
ブラケット表記(別の名前の場合もあります)
myObject["variableName"]
ドット表記と同様ですが、スペース文字などの他の文字を使用でき-
ます。まったく同じことを行います。
ネストされたプロパティにアクセスできるため、これらの表記を使用すると便利です。
myObj.foo.bar.baz()
それでは、JSONオブジェクトにアクセスしましょう...
{"items":[{"id":"BLE89-A0-123-384","weight":"100","quantity":3,"stock":0},
{"id":"BLE10-A0-123-321","weight":"100","quantity":4,"stock":0}],
自分でJSON形式をブラッシュアップすることもできますが、この例では、いくつかの手がかりがあります...
{
オブジェクトの開始を意味します。(JSON文字列全体がオブジェクトそのものであることに注意してください。)
}
オブジェクトの終わりを意味します。
"variable"
(引用符付き!JSONでは重要ですが、javascriptオブジェクトにアクセス/宣言する場合は重要ではありません)オブジェクトにプロパティを割り当てます。
:
JSONオブジェクトとJavaScriptオブジェクトの両方の代入演算子です。の右側にあるもの:
は、左側のプロパティに割り当てている値です。
,
オブジェクト内で新しいプロパティを開始していることを意味します。
[]
おそらく、内部に,
コンマが含まれているとは配列を意味することをご存知でしょう。
文字列を実行するJSON.parse(string)
と、次のようなオブジェクトが得られます...
var myResponse = JSON.parse(response);
これで、ネイティブJavaScriptオブジェクトとして使用できます。探しているのは、「アイテム」内のネストされたプロパティです。
var items = myResponse.items; //alternatively you could just use myResponse.items
items
はオブジェクトの配列であるため、既存のオブジェクトを新しいオブジェクトに変換するには、オブジェクトを反復処理する必要があります。
var i;
var result = {} ; //declare a new object.
for (i = 0; i < items.length; i++) {
var objectInResponse = items[i]; //get current object
var id = objectInResponse.id; //extract the id.
var quantity = objectInResponse.quantity;
result[id] = quantity; //use bracket notation to assign "BLE89-A0-123-384"
//instead of id. Bracket notation allows you to use the value
// of a variable for the property name.
結果は次のようなオブジェクトになります。
{
"BLE89-A0-123-384" : 3, //additional properties designated by comma
"BLE10-A0-123-321" : 4 // The last key/value in an object literal CANNOT
// have a comma after it!
}
角かっこ表記を使用してプロパティにアクセスできます。
var BLE89 = result["BLE10-A0-123-321"]; //use quotes, otherwise JavaScript will try to look up the value of a variable.