我有一个包含不同“列”的数组,例如:id,title,date,data等。
这是一个JSON数组。
数据元素有多个条目:
"data":["test = test", "2nd test", "3rd test"]
如何找到“result”数组的“data”元素中有多少条目?
当我尝试result.data.length
时,它会给我整个长度,所以所有的角色。
在这里,它会说27这样的东西,而我想要3作为答案。
编辑:这是我获取元素并推送它们的方式(我得到一个JSON数组):
$.getJSON("test.php?id=" + id, function(data) {
$.each(data, function(index, data1) {
window.result.push(data1);
});
这是test.php代码:
if(isset($_GET['id'])){
$id = $_GET['id'];
$liste = getData($id);
$arr = array();
$i = 0;
foreach($liste as $result){
$arr[$i]['id'] = $result->id();
$arr[$i]['titre'] = $result->titre();
$arr[$i]['data'] = $result->listeMot();
$i++;
}
echo json_encode($arr);
感谢您的帮助。
答案 0 :(得分:1)
终于找到了答案(非常感谢@RocketHamzat)。 它确实是一个字符串,而不是一个数组。在那种情况下,我在每对单词之后都有回报(我以为它们是用逗号分隔的,但它们不是。)
所以,算一算,这就是我所做的:
result.data.split('\r\n').length;
这就像一个魅力。谢谢你的帮助!
答案 1 :(得分:0)
我同意发布的评论 - 您的返回对象看起来不像是格式正确。 data应该是具有数组键值的对象。您的退货应如下所示:
var d = '{"data":["test = test", "2nd test", "3rd test"]}';
console.dir(JSON.parse(d));
var arr = JSON.parse(d);
console.log(arr.data.length);
console.dir将显示该对象,console.log显示长度为3。
您是否手动将响应格式化为JSON字符串?如果包含{}
希望有所帮助。