2013-04-04 148 views
0

我想在json數組中使用最內層的值。這個json數據我使用ajax調用。從json對象訪問內部元素

下面是從服務器的json數據得到:

{ 
"meta": { 
    "limit": 20, 
    "next": null, 
    "offset": 0, 
    "previous": null, 
    "total_count": 7 
}, 
"objects": [ 
    { 
     "id": 2, 
     "other": "{}", 
     "name": "gmail" 
    }, 
    { 
     "id": 3, 
     "other": "{'userinfo': [{ 'user1': { 'user_name':'nancy','address': [], 'outfields': ['login', 'url','type','id']}},{ 'createissue': { 'type':'post','infields': ['owner','repo','title','body'], 'outfields': []}}", 
     "name": "yahoo" 
    } 
] 

}

現在在這裏,我想使用jQuery的USER_NAME的價值。如何得到它?請有人幫我 我。

我想是這樣的: -

user=rows.objects[i].other.userinfo[0]; 

,但它不是工作

回答

2

的問題是,rows.objects[i].other不會被解析,它仍然是JSON。

你應該做

var obj = JSON.parse(rows.objects[i].other); 
var info = obj.userinfo ? obj.userinfo[0] : undefined; 

但是,如果你是一個生成JSON,你可能要修復的一代:你不應該在JSON嵌入JSON。

編輯:rows.objects[i].other甚至不是有效的JSON:它是不完整的並且有'而不是"

+0

是的,但是這個值不是一個對象,而是一個JSON字符串。這就是爲什麼你需要再次解析。 – 2013-04-04 12:27:51

+0

@dystry好吧,但它給出了一個錯誤: - 「未捕獲的TypeError:當我嘗試在控制檯上打印信息的值時,無法讀取未定義的屬性'0'。 – Snehal 2013-04-04 12:32:25

+0

事實上,我現在看到另外一個問題:內在的「JSON」實際上是無效的。你從哪裏得到那個奇怪的「JSON」? – 2013-04-04 12:45:14