我有以下JSON字符串:
var txt= '{“group”: [
{“family1”: {
“firstname”:”child1”,
“secondname”:”chlid2”
}},
{“family2”: {
“firstname”:”child3”,
“secondname”:”child4”
}}
]}';
我很难拔出诸如“child1”之类的信息。我确定这只是一个语法问题,还是我没有正确地做到这一点。我试过这样做:
alert (group[0].family[0].firstname);
但我什么也没得到......
答案 0 :(得分:3)
我看错了,我不确定你是否注意到它。
“family2”
这些都是花哨的Unicode引号。计算机不能很好地处理这些报价。用标准ASCII(Latin1)引号替换它们 - 即"
- 然后这应该有效:
var myobj = JSON.parse(txt);
alert(myobj.group[0].family1.firstName);
答案 1 :(得分:0)
您是否有理由使用JSON字符串而不仅仅是JSON对象?
假设您已经将字符串解析为JSON对象,那么您引用的是不存在的family
数组。您有family1
和family2
,因此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 );