web-dev-qa-db-ja.com

TypeErrorが見つけられません: 'in'演算子を使って 'length'を検索することはできません

TypeErrorが見つかりません:inで長さを検索するのにin演算子を使用できません

これは、この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は正常に機能します。

なぜこれが起こっているのでしょうか。

前もって感謝します。

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

$.each(JSON.parse(myData), ...);
183
Felix Kling

多分あなたはあなたの$ .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 );
   }
});
5