-2

我有一个包含不同“列”的数组,例如:id、title、date、data 等。

它是一个 JSON 数组。

数据元素有多个条目:

"data":["test = test", "2nd test", "3rd test"]

如何找到“结果”数组的“数据”元素中有多少条目?当我尝试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);

谢谢您的帮助。

4

2 回答 2

1

终于找到了答案(非常感谢@RocketHamzat)。它确实是一个字符串,而不是一个数组。在那种情况下,我在每对单词之后都有返回(我以为它们是用逗号分隔的,但事实并非如此)。

所以,计算一下,这就是我所做的:

result.data.split('\r\n').length;

这就像一个魅力。谢谢你的帮助!

于 2013-05-24T17:51:42.403 回答
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 字符串?如果是这样用 {} 包装

希望有帮助。

于 2013-05-24T17:26:16.470 回答