2014-07-24 45 views
1

中提取信息,我有以下的JSON字符串:從JSON

var txt= '{「group」: [ 
    {「family1」: { 
      「firstname」:」child1」, 
      「secondname」:」chlid2」 
    }}, 
    {「family2」: { 
      「firstname」:」child3」, 
      「secondname」:」child4」 
    }} 
]}'; 

我有困難拉出信息,諸如「child1」。我敢肯定,如果這只是一個語法問題,或者我沒有正確地做。我試着這樣做:

alert (group[0].family[0].firstname); 

但我發現了什麼....

+1

這不是有效的JSON - 注意「智能引號」。此外,您不能在JavaScript字符串文字中使用未轉義的換行符。 – Ryan

回答

3

我看到的東西錯了,我不知道你是否注意到它。

「family2」 

這些都是看中Unicode編碼。計算機對這些引號做得不好。取代它們與標準的ASCII字符(Latin1)報價–即" –然後這應該工作:

var myobj = JSON.parse(txt); 
alert(myobj.group[0].family1.firstName); 
+1

這正是我一直在尋找的感謝!顯然這是引用我的話 – Lipee

0

有沒有什麼是U唱JSON字符串,而不僅僅是一個JSON對象的一個​​原因?

假設您已經將字符串解析爲JSON對象,則引用了一個不存在的family數組。您有family1family2,因此family[0]不存在。

你需要做的是:parsedJson.group[0].family1.firstName

0

看來,你有你的字符串轉換第一個對象。用JSON.parse()函數將字符串作爲參數來執行此操作。並返回JavaScript對象frow,然後您可以拉動您的信息:

var info = JSON.parse(txt); 
alert(info.group[0].family1.firstname); 
0

嗯,首先,您使用的字符串未關閉。在Javascript中,字符串必須在一行中。

其次,我建議將它作爲JSON對象而不是字符串編寫。但是,您可以將字符串轉換爲對象。

不管怎麼說,這是一個例子,顯示你想要做什麼:http://jsfiddle.net/vB9AP/

var txt= {"group": [ 
{"family1": { 
     "firstname":"child1", 
     "secondname":"chlid2" 
}}, 
{"family2": { 
     "firstname":"child3", 
     "secondname":"child4" 
    }} 
]}; 

alert(txt.group[0].family1.firstname);