我尝试获取数组中的对象数量,但得到的“长度”为未定义。
我的js
..
success: function(data){
console.log(data.item.length);
},
我的PHP
<?php
$arr = array();
$arr["item"]["book"] = "harry porter";
$arr["item"]["available"] = true;
echo json_encode($arr);
?>
输出
{"item":{"book":"harry porter","available":true}}
最佳答案
通过 HTTP(S) 请求发送的所有内容都作为字符串接收(至少在 Ajax 中)。当您收到 JavaScript 对象格式的字符串时,它称为 JSON。您需要将此 JSON 解析回可读的 JavaScript 对象。
您需要使用 JSON.parse
函数,这会将 JSON 转换为 JavaScript 对象。
另外 .length
仅适用于数组,不适用于对象,因此您需要使用 console.log(Object.keys(data).length);
你的函数看起来像:
data=JSON.parse(data);
console.log(Object.keys(data).length);
关于javascript - 无法读取ajax中未定义的属性 'length',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27774655/