访问JSON字符串值

时间:2011-07-15 09:52:09

标签: javascript jquery json

我有这个example,我试图访问json值,但它甚至不会产生任何警报。有什么问题?

我的JSON

{
 "response": [
{
  "id": "0",
  "elementName": "osname",
  "isEqual": true,
  "isPrasentinXml1": true,
  "isPrasentinXml2": true,
  "attribute": [
    {
      "name": "osname",
      "firstValue": "Linux\u000a",
      "secondValue": "SunOs\u000a"
    }
  ]
},
{
  "id": "1",
  "elementName": "hostname",
  "isEqual": false,
  "isPrasentinXml1": true,
  "isPrasentinXml2": true,
  "attribute": [
    {
      "name": "hostname",
      "firstValue": "estilo\u000a",
      "secondValue": "buckeye.informatica.com\u000a"
    }
  ]
}
]
}

我想要抓取Linux\u000aSunOs\u000a,所以我写了

alert(compareData.response[0].attribute[0].firstValue+", "+compareData.response[0].attribute[0].secondValue);

注意:compareData我的数据在实际代码中的位置

4 个答案:

答案 0 :(得分:5)

您的错误是您的JSON周围有引号,它被视为字符串。您也忘记在第二个compareData中将jsonobj变量名替换为alert。试试下面的小提琴,它似乎就是你想要的。

jsFiddle:http://jsfiddle.net/Dna9H/6/

修改

如果您的JSON真的由字符串表示,请查看 Michael Sagalovich 解决方案。

答案 1 :(得分:1)

答案 2 :(得分:0)

就我在小提琴中看到的那样,你的对象就是字符串。您需要先将其解析为对象。 compareData = JSON.parse(compareData)可以提供帮助(我认为大多数浏览器都支持JSON.parse)。 jQuery还有解析器:$.parseJSON(compareData)

答案 3 :(得分:0)

你的语法。这有效:

var jsonobj = {
    "response": [
        {
        "id": "0",
        "elementName": "osname",
        "isEqual": true,
        "isPrasentinXml1": true,
        "isPrasentinXml2": true,
        "attribute": [{
            "name": "osname",
            "firstValue": "Linux\u000a",
            "secondValue": "Linux\u000a"}]
        },
        {
        "id": "1",
        "elementName": "hostname",
        "isEqual": false,
        "isPrasentinXml1": true,
        "isPrasentinXml2": true,
        "attribute": [{
            "name": "hostname",
            "firstValue": "estilo\u000a",
            "secondValue": "buckeye.informatica.com\u000a"}]
        }
    ]
 };

alert(jsonobj.response[0].elementName);
alert(jsonobj.response[0].attribute[0].firstValue + ", " + jsonobj.response[0].attribute[0].secondValue);

我可以问你是否可以安装和学习如何使用Firebug或Chrome的开发控制台。这些工具可以让您的生活更加轻松。