Uncaught TypeError: 'in'演算子を使用して 'length'を検索することはできません


101

Uncaught TypeError:「in」演算子を使用して「」内の「length」を検索することはできません

これは、$.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
コードをフォーマットしてください。このように読み取ることはできません。{}テキストエディターボタンを使用するか、コード行ごとに4スペースインデントできます。
Sidd

回答:


235

inオペレータはオブジェクトのみで動作します。あなたは文字列でそれを使用しています。を使用する前に、値がオブジェクトであることを確認してください$.each。この特定のケースでは、JSON解析する必要があります

$.each(JSON.parse(myData), ...);

Felix、$。each I JSON.parseの前に、キー送信で値-> "codParameters?___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"があるとエラーが表示されます。
イバン・アルベルトFontalvoサルガド

コードを投稿してください。説明しているエラーを再現することはできません。jsfiddle.net
Felix Kling

2
回答が1つでない場合は投稿しないでください。あなたの質問を編集し、関連するコードが含ま質問を。
フェリックスクリング

2時間を無駄にし、最終的にそれが使用して働いて得たvalidator.showErrors(JSON.parse(data))おかげでたくさんの先生..
モハメドSufian

$ .each( "ul li"、function(k、v){...});でこのエラーが発生します。
Cr1xus

17

$ .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 );
   }
});

それは私にそれをやった。ありがとう!
ルイスロック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.