在从JSON响应中获取值时,使用javascript解析JSON会导致未定义
我正在用javascript解析json字符串在从JSON响应中获取值时,使用javascript解析JSON会导致未定义,javascript,json,Javascript,Json,我正在用javascript解析json字符串 { "head": { "example": "0" }, "res": { "@test": "121", "@found": "5" } } 我从远程站点获得http响应,并使用javascript提取@found值 var json=eval('('+request.responseText+')'); al
{
"head": {
"example": "0"
},
"res": {
"@test": "121",
"@found": "5"
}
}
我从远程站点获得http响应,并使用javascript提取@found值
var json=eval('('+request.responseText+')');
alert(json.head.res.@found);
给我一个空值,你能告诉我如何解析它吗
alert(json.head.res['@found']);
@无法启动变量名,因此必须使用括号表示法。或者将变量名更改为有效
基本上,以正则表达式形式:[a-zA-Z_$][0-9a-zA-Z_$]*。在里面
换句话说,第一个字符可以是字母或u或$,而
其他字符可以是字母或u或$或数字
Per Topera的答案head和res在对象中处于同一级别,不嵌套 @无法启动变量名,因此必须使用括号表示法。或者将变量名更改为有效 基本上,以正则表达式形式:[a-zA-Z_$][0-9a-zA-Z_$]*。在里面 换句话说,第一个字符可以是字母或u或$,而 其他字符可以是字母或u或$或数字
Per Topera的答案head和res在对象中处于同一级别,不嵌套。属性“res”不在“head”属性内 尝试以下操作:
json.res['@found']
属性“res”不在“head”属性内
alert(json.res['@found']);
试试这个:json.res['@found']
alert(json.res['@found']);
res
不在头部内部
res
不在head内。尝试json.res['@found']
。不能使用点表示法访问无效变量名的JavaScript对象属性。另外,正如其他人所指出的,@found不在head中。尝试json.res['@found']
。不能使用点表示法访问无效变量名的JavaScript对象属性。另外,正如其他人所指出的,@found不在head中。解决以下三个问题:
不是有效的变量名字符。你应该考虑<代码> []/Cord>语法,而不是“点”。@
不在res
中head
- 请不要使用
。我强烈建议您使用eval
而不是JSON.parse
eval
不是有效的变量名字符。你应该考虑<代码> []/Cord>语法,而不是“点”。@
不在res
中head
- 请不要使用
。我强烈建议您使用eval
而不是JSON.parse
eval
res与头部平行。迭代直到返回对象的深度。尝试警报(json.res.@found);res与头部平行。迭代直到返回对象的深度。尝试警报(json.res.@found);感谢您的建议,json是从xml转换而来的,因此名称以@开头。我使用json lib在java中转换它。感谢您的建议,json是从xml转换而来的,因此名称以@开头。我使用json lib在java中转换它。