访问单个JSON对象数组中的值

时间:2012-06-06 18:02:07

标签: javascript jquery ajax json

我浪费了两天时间,我不能再忍受了。我从$.ajax调用中获得了良好的JSON数据。以下示例......

"results":[
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}",
"{"a":"data","b":"data","c":"data","d":"data"}"
]

我试图访问这个JSON对象的单个数组中的值,但是无法解决这个问题。这是我下面的代码......

success:function (data) {

/*
$.each(data.results, function(i, val) {
console.log(i, val);
});
*/

$('a.previewUrl').each(function (i) {
    var res = jQuery.parseJSON(data.results[0]);
    var previewUrl = $(this);
if(previewUrl.attr("href") == '') {
    previewUrl.attr("href", res[i].d);
}

});

} // end success

对阵列中每个JSON对象的console.log迭代打印出来很好,但我想我已经尝试了十几种不同的方法来在$.each()循环中获取这些值。我缺少什么?

1 个答案:

答案 0 :(得分:2)

你的Json无效。尝试通过jsonlint,看看会发生什么。

我认为这可能是你的目标:

{
"results": [
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    },
    {
        "a": "data",
        "b": "data",
        "c": "data"
    }
]}

如果您正在使用jQuery的$ .getJSON函数,则不需要解析数据,或者如果您使用$ .ajax函数,请将数据类型设置为json所以它会为你解析数据。