从JSON中检索值

时间:2013-09-04 10:01:28

标签: javascript ajax json

我想从下面给出的json

中提取tenantId值
{
  "ClientAccounts":{
   "@tenantId":"entpriseDemo",
   "clientAccount":[
    {
     "guid":"447a0bac-51e0-4f5f-b504-97dca5825530",
     "totalValueFormatted":"$1,100,000"
    }
   ]
  }
}

这是我的javascript函数,用于调用ajax请求和成功函数代码

$.ajax({
      url: "$clientAccountsURL",
      cache: false,
      dataType: "json", // set to json or xml
      success: function(data){

        alert(data.ClientAccounts.tenantId);


    } 
});

当我在成功函数中警告tenantId的值时,它会返回未定义的值,虽然我检查了它在json数组中可用的firebug。

还有其他方法可以检索tenantId的值。

4 个答案:

答案 0 :(得分:2)

使用方括号表示法

data.ClientAccounts['@tenantId']

来自this mdn article

  

对象属性名称可以是任何有效的JavaScript字符串,也可以是可以转换为字符串的任何内容,包括空字符串。但是,任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符的属性名称,或以数字开头的属性名称)只能使用方括号表示法访问。

答案 1 :(得分:1)

您应该能够像关联数组一样使用它来访问它:

data.ClientAccounts['@tenantId']

答案 2 :(得分:1)

由于属性名称包含@,因此您必须使用关联数组语法访问该属性。

data.ClientAccounts["@tenantId"];

JsFiddle: http://jsfiddle.net/VS9xe/

答案 3 :(得分:1)

您可以使用对象表示法或关联数组表示法:

在您的情况下,使用关联数组表示法:

alert(data.ClientAccounts["@tenantId"]);

例如: http://jsfiddle.net/2kdWQ/1/