0

次のコードがあります。

var inputString ={"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}

var value = inputString ["Key3"];
alert(value);

上記のコードは問題なく動作します。変数 inputString には中括弧の間のすべてが割り当てられていることに注意してください。私はjsの初心者ですが、ある種のオブジェクトを示すための慣例だと思います。この種の文字列割り当ては私には奇妙に見えますが、上記のように機能します。

私の問題は、inputString次のように、変数を文字列リテラルに割り当てようとするときです。

var inputString2 ='{"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}'

var value = inputString2 ["Key3"];
alert(value);

上記のコードはundefinedを返します。なぜですか?

JavaScriptを深く理解している人なら、これを説明できると思います。

ありがとうございました

4

1 に答える 1

5

これは、オブジェクトではなく単なる文字列であるためです。

var inputString2 ='{"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}'

json の引用符を削除する必要があります。このようにする必要があります。

 var inputString2 ={"Key1":"Planes","Key2":"Trains","Key3":"Cars","Key4":"Caoch","Key5":"Cycles","Key6":"Bikes"}

文字列として取得する場合。JSON.parse を使用する

 var convertedJson =  JSON.parse(inputString2);
var value = convertedJson ["Key3"];
alert(value);

JSON.parse を参照

于 2013-05-09T15:51:28.700 に答える