2013-04-10 58 views
1

我JSON數據,如本內嵌套的地圖:入門JSON數據

var data = '{"credit":{"@code":"NT2C8FFC","card":"NT2C8FFC","credit":"149.96","amount":"149.96","disabled":"0","expired":"2011-02-15 10:21:18","user":"xxxx","issued":"2010-02-15 10:21:18","orderid":[],"fromorder":[],"email":"xxxx","phone":[],"state":[],"address":[],"city":[],"zip":[],"country":[],"customerid":"xxx","order":"xxx","order_date":"2010-01-23 00:00:00","reason":"Product Not Working as Expected","source":"xxx","first":[],"last":[],"notes":[]}}' 

它實際上是被退回來的JSON。例如,我只是在這裏顯示它。我可以用data["credit"]獲得所謂credit的元素,但只得到我:

{"@code":"NT2C8FFC","card":"NT2C8FFC","credit":"149.96","amount":"149.96","disabled":"0","expired":"2011-02-15 10:21:18","user":"xxxx","issued":"2010-02-15 10:21:18","orderid":[],"fromorder":[],"email":"xxxx","phone":[],"state":[],"address":[],"city":[],"zip":[],"country":[],"customerid":"xxx","order":"xxx","order_date":"2010-01-23 00:00:00","reason":"Product Not Working as Expected","source":"xxx","first":[],"last":[],"notes":[]} 

我怎麼能深入到一個鏡頭? data["credit"]["credit"]是不正確的語法。它導致未定義。我知道我很接近但不記得其他人。我們的目標是從JSON數據中獲取149.96

+2

[你爲什麼說這是不正確的語法?](http://jsfiddle.net/ExplosionPIlls/3Y6XH/) – 2013-04-10 06:44:26

+0

@ExplosionPills的小提琴適合我.. – asifrc 2013-04-10 06:57:47

+0

@ExplosionPills,你的小提琴不包括引用數據,這就是爲什麼它的工作 – 2013-04-10 07:15:51

回答

0

使用.操作來獲取對象的對象

alert(data.credit.credit) //gives 149.96 
alert(data.credit.amount) //gives 149.96 
alert(data.credit.card) //gives NT2C8FFC 
0

您正在data字符串不是一個對象。變化

var data = '{"credit":{"@code":"NT2C8FFC","card":"NT2C8FFC","credit":"149.96","amount":"149.96","disabled":"0","expired":"2011-02-15 10:21:18","user":"xxxx","issued":"2010-02-15 10:21:18","orderid":[],"fromorder":[],"email":"xxxx","phone":[],"state":[],"address":[],"city":[],"zip":[],"country":[],"customerid":"xxx","order":"xxx","order_date":"2010-01-23 00:00:00","reason":"Product Not Working as Expected","source":"xxx","first":[],"last":[],"notes":[]}}' 

var data = {"credit":{"@code":"NT2C8FFC","card":"NT2C8FFC","credit":"149.96","amount":"149.96","disabled":"0","expired":"2011-02-15 10:21:18","user":"xxxx","issued":"2010-02-15 10:21:18","orderid":[],"fromorder":[],"email":"xxxx","phone":[],"state":[],"address":[],"city":[],"zip":[],"country":[],"customerid":"xxx","order":"xxx","order_date":"2010-01-23 00:00:00","reason":"Product Not Working as Expected","source":"xxx","first":[],"last":[],"notes":[]}} 

如果你不能改變原有的數據,你需要做

data = JSON.parse(data); 

(這將在大多數瀏覽器工作)或使用解析它來自庫的方法,如JQuery's

data = jQuery.parseJSON(data); 
1

現在您可以使用alert(data.credit.credit)

 var data = '{"credit":{"@code":"NT2C8FFC","card":"NT2C8FFC","credit":"149.96","amount":"149.96","disabled":"0","expired":"2011-02-15 10:21:18","user":"xxxx","issued":"2010-02-15 10:21:18","orderid":[],"fromorder":[],"email":"xxxx","phone":[],"state":[],"address":[],"city":[],"zip":[],"country":[],"customerid":"xxx","order":"xxx","order_date":"2010-01-23 00:00:00","reason":"Product Not Working as Expected","source":"xxx","first":[],"last":[],"notes":[]}}'; 
     eval("data=" + data); 
     alert(data.credit.credit); 

您還可以使用data = JSON.parse(data);字符串爲JSON轉換但這瀏覽器兼容性問題。

這些是支持

  • 火狐(Mozilla的)瀏覽器3.5
  • 的Internet Explorer 8
  • 歌劇10
  • 列表項
  • 的Safari 4

舊版本不支持。

+0

'。'或'[]'語法都可以正常工作。使用'[]'語法允許在括號之間使用變量,即'var c ='credit'; console.log(data [c]);' – 2013-04-10 07:26:28

+0

上下文中「data」的例子是返回的數據作爲JSON對象。這就是爲什麼我使用數據[「信用」]。我無法得到內在的信用。 – 2013-04-10 15:33:50

+0

「data」是一個JSON對象。我不好意思引用它。 data.credit.credit返回undefined。 – 2013-04-10 15:44:30