从JSON中提取信息

时间:2014-07-24 18:29:36

标签: javascript json

我有以下JSON字符串:

var txt= '{“group”: [
    {“family1”: {
            “firstname”:”child1”,
            “secondname”:”chlid2”
    }},
    {“family2”: {
            “firstname”:”child3”,
            “secondname”:”child4”
    }}
]}';

我很难拔出诸如“child1”之类的信息。我确定这只是一个语法问题,还是我没有正确地做到这一点。我试过这样做:

alert (group[0].family[0].firstname);

但我什么也没得到......

4 个答案:

答案 0 :(得分:3)

我看错了,我不确定你是否注意到它。

“family2”

这些都是花哨的Unicode引号。计算机不能很好地处理这些报价。用标准ASCII(Latin1)引号替换它们 - 即" - 然后这应该有效:

var myobj = JSON.parse(txt);
alert(myobj.group[0].family1.firstName);

答案 1 :(得分:0)

您是否有理由使用JSON字符串而不仅仅是JSON对象?

假设您已经将字符串解析为JSON对象,那么您引用的是不存在的family数组。您有family1family2,因此family[0]不存在。

您需要执行此操作:parsedJson.group[0].family1.firstName

答案 2 :(得分:0)

您似乎必须先将字符串转换为对象。使用带有字符串作为参数的JSON.parse()函数执行此操作。并返回JavaScript对象frow,然后您可以提取您的信息:

var info = JSON.parse( txt );
alert( info.group[0].family1.firstname );

答案 3 :(得分:0)

首先,您使用的字符串未关闭。在Javascript中,字符串必须在一行上。

其次,我建议将其编写为JSON对象,而不是字符串。但是,您可以将字符串转换为对象。

无论如何,这是一个显示您想要做的事情的示例:http://jsfiddle.net/vB9AP/

var txt= {"group": [
{"family1": {
        "firstname":"child1",
        "secondname":"chlid2"
}},
{"family2": {
        "firstname":"child3",
        "secondname":"child4"
    }}
]};

alert( txt.group[0].family1.firstname );