在ajax请求之后访问JSON中的元素

时间:2014-12-16 13:26:21

标签: javascript json object

我花了最后几个小时试图找出这个。 我使用JQuery发出ajax请求。我得到了字符串格式的响应,我使用

jQuery.parseJSON(response);

将其转换为Object。 这是我的回答:

{
    "columns": ["n"],
    "data": [
        [{
            "extensions": {},
            "labels": "http://localhost:7474/db/data/node/168/labels",
            "outgoing_relationships": "http://localhost:7474/db/data/node/168/relationships/out",
            "traverse": "http://localhost:7474/db/data/node/168/traverse/{returnType}",
            "all_typed_relationships": "http://localhost:7474/db/data/node/168/relationships/all/{-list|&|types}",
            "property": "http://localhost:7474/db/data/node/168/properties/{key}",
            "self": "http://localhost:7474/db/data/node/168",
            "properties": "http://localhost:7474/db/data/node/168/properties",
            "outgoing_typed_relationships": "http://localhost:7474/db/data/node/168/relationships/out/{-list|&|types}",
            "incoming_relationships": "http://localhost:7474/db/data/node/168/relationships/in",
            "create_relationship": "http://localhost:7474/db/data/node/168/relationships",
            "paged_traverse": "http://localhost:7474/db/data/node/168/paged/traverse/{returnType}{?pageSize,leaseTime}",
            "all_relationships": "http://localhost:7474/db/data/node/168/relationships/all",
            "incoming_typed_relationships": "http://localhost:7474/db/data/node/168/relationships/in/{-list|&|types}",
            "metadata": {
                "id": 168,
                "labels": []
            },
            "data": {
                "name": "1"
            }
        }]
    ]
}

我尝试访问此对象的特定元素,但我什么也得不到。我试试这个时

var test = json.data;

它有效,但我如何访问元数据中保存的值。 我试试这个,但我得到了#34;未定义":

var test = json.data.metadata.id;

知道我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

这是一个数组,所以你要使用索引

var test = json.data[0][0].metadata.id;

json.data[0]返回[{...}],再次[{...}][0]返回{...},其中包含metadata对象,而id属性又是{{1}}属性需要。

答案 1 :(得分:1)

json.data是一个双数组。

这应该有效:

var test = json.data[0][0].metadata.id;

答案 2 :(得分:0)

尝试:

var test = json.data[0][0].metadata.id;

json.data是一个数组数组。