2017-02-23 81 views
0

這是我的JSON:(這是AJAX響應數據)jQuery的JSON解析 - 對象元素

{"id":"1","code":"43","doc":"{\"date\":\"2016\",\"name\":\"NAME1\",\"id\":\"7\"}"} 

我想解析此JSON使用jQuery:

var obj = jQuery.parseJSON(data); 

這是DOC:console.log(obj.doc);

{\"date\":\"2016\",\"name\":\"NAME1\",\"id\":\"7\"} 

但我該如何引用「名稱」? 我沒有引用obj.doc.name,因爲「name」不是對象上的元素。

+1

您可以清楚地看到'obj.doc'的值是一個包含JSON的字符串。你需要再次應用'JSON.parse(obj.doc)'。不過,更好的辦法是修復生成JSON的代碼,不要對數據進行雙重編碼。 –

+0

看起來好像'doc'本身就是JSON,所以你需要解析它。就像'var obj = jQuery.parseJSON(data); obj.doc = jQuery.parseJSON(obj.doc);' –

+1

THX!這工作! – user3740961

回答

2

由於對象中「doc」屬性的值是一個字符串,因此您需要解析該值以將其視爲JSON對象。

第一解析後,你可以這樣做:

var doc = JSON.parse(obj.doc) 

然後你就可以訪問doc.name

1

在這種情況下,響應已經是JSON。你只想解析data.doc

你可以做到這一點像:

data.doc = jQuery.parseJSON(data.doc) 

,現在當你得到你想要的東西。

> console.log(data.doc.name) 
NAME1