有可能这个json输出为jquery中的数组吗?

时间:2014-02-22 19:11:16

标签: php jquery mysql json

我有一个php文件,它在数据库中搜索,然后使用结果构建和数组,结束并显示结果如下:

{"1":"1","2":"2","15":"15","25":"25"}

这意味着在位置0没有结果,位置1具有值1,依此类推。 (据我所知/这个结果是一个有效的json输出)

在jquery方面我有这个

     $.ajax({
        type: 'POST',
        url: 'diahoracierre.php',
        dataType: 'json',
        cache: false,
        success: function(result) {
            alert(result);
        },
    });

我需要的是将结果“解析”到数组并且能够使用数组的索引来播放内容,例如

alert(result[X]);

在结果[1]上显示1,任何其他尝试显示未定义且至少有4个结果。

2 个答案:

答案 0 :(得分:1)

因为您使用了dataType: 'json'。然后它不再需要你解析json结果。

另请注意,您的参数在成功函数中名为result。因此您可以使用:

alert(result[1]);

而不是:

alert(myArray[1]);

答案 1 :(得分:1)

你有两个选择:你循环结果并自己创建一个数组(一个繁琐的任务)或你访问下面的元素,请注意索引周围的引号是必需的虽然我们说索引但实际上我们正在寻找关键名称。

result["index"]

e.g。

result["5"]

此外,我尝试了您的jsFiddle并且有效:

var json = '{"0":"-1","1":"1","2":"2","15":"15","3":"-1","25":"25","4":"-1","5":"-1","6":"-1","7":"-1","8":"-","9":"-1","10":"-1","11":"-1","12":"-1","13":"-1","14":"-1","16":"-1","17":"-1","18":"-1","19":"-1","20":"-1","21":"-1","22":"-1","23":"-1","24":"-1","26":"-1"}';
json = JSON.parse(json);
alert(json["25"]);