无法在JAvascript中访问JSON响应的变量

时间:2014-12-08 10:42:11

标签: javascript arrays ajax object

我使用AJAX调用调用API,然后处理准备输出的响应。唯一的问题是,我似乎无法访问响应对象中看起来像数组的内容,而我无法为我的生活找出原因。这似乎只是一个基本的事情,但是当我尝试直接调用特定的响应值并将其记录在控制台中时,它显示为undefined。

这是我的回复对象:

{
    format: "small",
    _links: {
        self: {
            href: "http://www-*******.net/v1/trading/exchange"
        }
},
    _embedded: {
        exchangeData: [  
                server: {
                     time: "10:01",
                     date: "08.12.2014"
                },
                expert: {
                quantity: "48,069",
                country: {
                ..................

现在,我想要访问的变量是'expert'对象的'quantity'值。我认为这是获得它的方法:

response._embedded.exchangeData['expert'].quantity

这是对的吗?它没有返回任何价值,我认为这通常是一件非常简单的事情。 感谢

1 个答案:

答案 0 :(得分:0)

在JSON中,[]括号用于数组。例如,您可以["a", "b", "c"]使用数字偏移量访问response[1],例如{}

大括号{"first": "a", "second": "b", "third": "c"}用于对象(类似于其他语言中的哈希表),例如response.first,您可以通过名称引用属性来访问它,例如{ "_embedded": { "exchangeData": { "server": { "time": "10:01", "date": "08.12.2014" }, "expert": { "quantity": "48,069", "country": { 。< / p>

符号非常简单,see the specification here

在这种情况下,您应该将JSON源修复为:

response._embedded.exchangeData.expert.quantity

请注意,exchangeData之后的字符现在是大括号,而不是常规括号。然后,您可以通过以下方式访问它:

{{1}}