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

Access elements in JSON after ajax request

本文关键字:元素 JSON 访问 ajax 请求      更新时间:2023-09-26

我花了几个小时试图弄清楚这一点。我使用 JQuery 发出 ajax 请求。我收到字符串格式的响应,我使用

jQuery.parseJSON(response);

以将其转换为对象。这是我的回应:

{
    "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;

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

var test = json.data.metadata.id;

知道我错过了什么吗?

它是一个数组,所以你必须使用索引

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

json.data[0]返回[{...}][{...}][0]再次返回具有metadata对象的{...},而对象又作为您需要id属性。

json.data 是一个双精度数组。

这应该有效:

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

尝试:

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

json.data是一个数组数组。