我浪费了两天时间,我不能再忍受了。我从$.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()
循环中获取这些值。我缺少什么?
答案 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所以它会为你解析数据。