我正在使用javascript
解析json字符串 {
"head": {
"example": "0"
},
"res": {
"@test": "121",
"@found": "5"
}
}
我从远程站点获取http响应,我使用javascript来提取@found值.i使用下面的代码。
var json=eval('('+request.responseText+')');
alert(json.head.res.@found);
给我一个空值,请你告诉我怎么解析这个。
答案 0 :(得分:3)
alert(json.head.res['@found']);
@无效以启动变量名称,因此您必须使用括号表示法。或者将变量名称更改为有效。
基本上,以正则表达式形式:[a-zA-Z _ $] [0-9a-zA-Z _ $] *。在 换句话说,第一个字符可以是字母或_或$,和 其他字符可以是字母或_或$或数字。
What characters are valid for JavaScript variable names?
<小时/> Per Topera的答案头和res在你的对象中处于同一级别而不是嵌套。
答案 1 :(得分:1)
属性“res”不在“head”属性中。
试试这个:json.res['@found']
答案 2 :(得分:0)
alert(json.res['@found']);
res
不在头脑中。
答案 3 :(得分:0)
试试json.res['@found']
。无法使用点表示法访问无效变量名称的JavaScript对象属性。另外,正如其他人所指出的那样,@ found并不在头脑中。
答案 4 :(得分:0)
解决这三件事:
@
不是有效的变量名称字符。你应该考虑使用[]
语法而不是“dot”语法。res
不在head
。eval
。我强烈建议您使用JSON.parse
代替eval
var json = JSON.parse(request.responseText); alert(json.res['@found']);