未捕获的TypeError:无法使用'in'运算符来搜索'length' “
这是我尝试对此JSON对象执行$.each
时收到的错误:
{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}
我也试过用stringify做同样的事情,但我收到同样的错误:
{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"
如果我从对象中删除参数___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest
,$ .each工作正常。
为什么会发生这种情况?
提前致谢。
答案 0 :(得分:181)
in
运算符仅适用于对象。您正在使用字符串。在使用$.each
之前,请确保您的值是一个对象。在这种特定情况下,您必须parse the JSON:
$.each(JSON.parse(myData), ...);
答案 1 :(得分:4)
也许您忘记在$ .ajax中添加参数dataType:'json'
$.ajax({
type: "POST",
dataType: "json",
url: url,
data: { get_member: id },
success: function( response )
{
//some action here
},
error: function( error )
{
alert( error );
}
});
答案 2 :(得分:0)
唯一为我和$.each
工作的解决方案肯定是导致错误的原因。所以我用了for loop
,它不再抛出错误了。
示例代码
$.ajax({
type: 'GET',
url: 'https://example.com/api',
data: { get_param: 'value' },
success: function (data) {
for (var i = 0; i < data.length; ++i) {
console.log(data[i].NameGerman);
}
}
});