Jsonオブジェクトがあり、それを画面に出力します(alert()関数を使用):
alert(object);
結果は次のとおりです。
次に、idの値を画面に出力します。
alert(object["id"]);
結果は次のとおりです。
ご覧のとおり、キー「id」の値は未定義ではありません(!!!)。
ここで何が起こっているのでしょうか?!
Jsonオブジェクトは実際にはオブジェクトではなく、json文字列です。オブジェクトとして使用するには、JSON.parse(obj)
などの逆シリアル化関数を使用する必要があります。多くのフレームワークには、JSON文字列を逆シリアル化する方法に対する独自の実装があります。
実際のオブジェクトでalert(obj)
を実行しようとすると、結果は[object Object]またはそのようなものになります
JSONは解析されないため、JavaScriptがその値にアクセスできるようにするには、最初に1行目のように解析する必要があります。
var result = JSON.parse(object);
alert(result.id);
JSON Objectedが既に解析された後、次のように値にアクセスできます。
alert(result.id);
それをvar
に割り当ててからアクセスする必要があります。
var object = {id: "someId"};
console.log(object);
alert(object["id"]);
JavaScriptでは、を使用してオブジェクトプロパティにアクセスできます。演算子または[]
を使用した連想配列インデックス付き。つまりobject.propertyはobject["property"]
と同等です
あなたが試すことができます:
var obj = JSON.parse(Object);
alert(obj.id);