1

我有这样的 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"]不是正确的语法。它导致未定义。我知道我很接近,但不记得其余的了。目标是149.96从 JSON 数据中获取。

4

3 回答 3

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
  • 互联网浏览器 8
  • 铬合金
  • 歌剧 10
  • 项目清单
  • 野生动物园 4

旧版本不支持。

于 2013-04-10T07:18:11.150 回答
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 的

data = jQuery.parseJSON(data);
于 2013-04-10T07:13:26.047 回答
0

使用.运算符获取对象的对象

alert(data.credit.credit) //gives 149.96
 alert(data.credit.amount) //gives 149.96
alert(data.credit.card) //gives NT2C8FFC
于 2013-04-10T06:46:23.330 回答