提问人:Roy Hinkley 提问时间:2/1/2023 更新时间:2/1/2023 访问量:43
如何使用 Javascript 访问命名的 JSON 数组
How to access named JSON array with Javascript
问:
我正在从 API 获取一个 JSON 数组。返回的数据将写入控制台:
console.log(` data [${data}] `);
打印:
{
"aaData": [
{
"create_date": "1/30/2023 07:43 AM",
"description": "0800",
"override_user_id": -1,
"type": 1,
"user_id": 32,
"user_type": 0
},
{
"create_date": "1/30/2023 09:43 AM",
"description": "1000",
"override_user_id": -1,
"type": 1,
"user_id": 32,
"user_type": 0
},
{
"create_date": "1/30/2023 11:43 AM",
"description": "1200",
"override_user_id": -1,
"type": 1,
"user_id": 32,
"user_type": 0
},
{
"create_date": "1/30/2023 01:43 PM",
"description": "1400",
"override_user_id": -1,
"type": 1,
"user_id": 32,
"user_type": 0
}
]
}
我所期待的。但是如果我检查长度(预期长度为 4)
console.log(`data [${data.length}] `);
我得到:
data [607]
这对我来说没有意义。此外,如果我将命名数组写入控制台
console.log(` data [${data.aaData}] `);
我得到:
data [undefined]
而且,如果我尝试访问数组中对象的属性,则每个对象都未定义。
控制台.log(description = [${data.aaData[i].description}]
);
我得到
description = [undefined]
data
是从 JQuery ajax 调用返回的变量
success: function (data) {
...
假设它直接打印到控制台,而不必打印到控制台,则返回的数据应该是 json 对象的字符串版本。但是,如果我申请stringfy
console.log(` data[${JSON.parse(data)}] `);
显示
data [undefined]
我在这里有什么不明白的?
答:
0赞
ruleboy21
2/1/2023
#1
看起来是一个 so 将返回字符串的长度,在您的情况下为 607。若要将数据转换为 JSON,请添加到选项中,如下所示:data
string
data.length
dataType: 'json'
$.ajax()
$.ajax({
...
dataType: 'json',
success: function (data) {
console.log(data)
}
});
评论