Uncaught TypeError: Nie można użyć operatora „in” do wyszukania „length” in

101

Uncaught TypeError: Nie można użyć operatora „in” do wyszukania „length” w „

Oto błąd, który otrzymuję, gdy próbuję wykonać a $.eachdo tego obiektu JSON:

{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}

Próbowałem również zrobić to samo ze stringify, ale otrzymuję ten sam błąd:

{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"

Jeśli usunę parametry ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestz obiektu, $ .each działa dobrze.

Dlaczego tak się dzieje?

Iván Alberto Fontalvo Salgado
źródło
4
Sformatuj swój kod, nie można go w ten sposób odczytać. Możesz użyć {}przycisku edytora tekstu lub wciąć 4 spacje w każdym wierszu kodu.
Sidd

Odpowiedzi:

237

inOperator działa wyłącznie na obiektach. Używasz go na sznurku. Przed użyciem upewnij się, że wartość jest obiektem $.each. W tym konkretnym przypadku musisz przeanalizować JSON :

$.each(JSON.parse(myData), ...);
Felix Kling
źródło
Felix, przed $ .each mam JSON.parse, pojawia się błąd, gdy w przesyłaniu klucza mam wartość -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest".
Iván Alberto Fontalvo Salgado
Prześlij swój kod, nie mogę powtórzyć opisywanego błędu: jsfiddle.net/5asbeatq
Felix Kling
2
Nie publikuj odpowiedzi, jeśli nią nie jest. Edytować swoje pytanie i podać odpowiedni kod w pytaniu.
Felix Kling
zmarnowałem 2 godziny i wreszcie udało mi się go validator.showErrors(JSON.parse(data))uruchomić, wielkie dzięki sir ..
Mohammed Sufian
Otrzymuję ten błąd dla $ .each ("ul li", function (k, v) {...});
Cr1xus
18

być może zapomniałeś dodać parametr dataType: 'json' w swoim $ .ajax

$.ajax({
   type: "POST",
   dataType: "json",
   url: url,
   data: { get_member: id },
   success: function( response ) 
   { 
     //some action here
   },
   error: function( error )
   {
     alert( error );
   }
});
Tri W. Herlambang
źródło
To mi to zrobiło. Dzięki!
Luis Rock