未捕获的类型错误:无法使用“in”运算符来搜索“length”

IT技术 javascript jquery json getjson
2021-02-06 14:08:08

未捕获的类型错误:无法使用“in”运算符在“中”搜索“长度”

这是我尝试$.each对此 JSON 对象执行操作时收到的错误

{"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 工作正常。

为什么会发生这种情况?

4个回答

in运算符仅适用于对象。您正在字符串上使用它。在使用之前确保您的值是一个对象$.each在这种特定情况下,您必须解析 JSON

$.each(JSON.parse(myData), ...);
菲利克斯,在 $.each 之前我有 JSON.parse ,当在密钥提交中有值时出现错误 - >“codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest”。
2021-03-22 14:08:08
请发布您的代码,我无法重现您所描述的错误:jsfiddle.net/5asbeatq
2021-03-26 14:08:08
我收到此错误 $.each("ul li",function(k,v){ ... });
2021-03-27 14:08:08
如果不是,请不要发布答案。编辑您的问题,包括相关的代码的问题。
2021-04-08 14:08:08
浪费了2个小时,终于可以使用了validator.showErrors(JSON.parse(data)),非常感谢先生..
2021-04-11 14:08:08

也许您忘记在 $.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 );
   }
});
我就是这么做的。谢谢!
2021-04-09 14:08:08

唯一对我有用的解决方案$.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);
                }
            }
        });

这对我有用

$.each(JSON.parse("[" + data + "]"))

$.each仅适用于对象。如果你的数据是一个数组,你可以像这样改变它

 $data = (object)$array;
这并没有提供问题的答案。一旦您拥有足够的声誉,您就可以对任何帖子发表评论相反,提供不需要提问者澄清的答案-来自评论
2021-03-18 14:08:08