3

我在这上面浪费了两天时间,我再也受不了了。我从我的$.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()循环中获取这些值。我错过了什么?

4

1 回答 1

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"
    }
]}

and if you're using jQuery's $.getJSON function, you don't need to parse your data or if you're using the $.ajax function, set the datatype to json so it wil parse the data for you.

于 2012-10-05T23:54:55.170 回答