2013-05-09 103 views
0

我有以下代碼:JavaScript字符串賦值給鍵值字符串

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有深刻理解的人可以向我解釋這一點。

謝謝

+0

你爲什麼要使用對象方法用繩子? – 2013-05-09 15:52:44

+0

你需要在該字符串上使用'eval' .... j/k(不這樣做)查看json.js http://www.json.org/js.html – 2013-05-09 15:54:03

+0

這個「某種對象「實際上稱爲['object literal'](https://developer.mozilla.org/en/docs/JavaScript/Guide/Values,_variables,_and_literals#Object_literals),第二個僅僅是一個」字符串文字「最有可能的字符串轉儲的[JSON](http://www.json.org/)對象 – Aprillion 2013-05-09 16:01:21

回答

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); 

See JSON.parse

+0

您好PSL,有沒有辦法將inputString2從一個字符串變成一個對象,所以它可以工作? – Karthik 2013-05-09 15:53:03

+0

使用JSON.parse(inputString2) – PSL 2013-05-09 15:53:50

+1

不要用花括號括住引號。 – 2013-05-09 15:53:51