繁体   English   中英

使用javascript解析JSON给我未定义,同时从json响应中获取值

[英]parsing JSON using javascript gives me undefined while getting the value from the json response

我正在使用javascript解析json字符串

    {
      "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 _ $] *。 换句话说,第一个字符可以是字母或_或$,其他字符可以是字母或_或$或数字。

哪些字符对JavaScript变量名称有效?


Per Topera的答案头和res在未嵌套的对象中处于同一级别。

属性“ res”不在“ head”属性内。

试试这个: json.res['@found']

alert(json.res['@found']);

res不在头脑里。

尝试json.res['@found'] 无效的JavaScript对象属性,不能使用点符号来访问。 另外,正如其他人所指出的,@ found不在头脑中。

解决这3件事:

  • @不是有效的变量名字符。 您应该考虑使用[]语法而不是“点”语法。
  • res是不是在head
  • 请不要使用eval 我强烈建议您使用JSON.parse而不是eval
var json = JSON.parse(request.responseText);
alert(json.res['@found']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM