2015-05-15 9 views
52

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in "TypeError Uncaught: Non può usare 'in' operatore per la ricerca di 'lunghezza' in

Questo è l'errore che ricevo quando provo a fare un $ .each a questo oggetto JSON:

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

ho anche provato a fare lo stesso con la stringa i, ma ricevere lo stesso errore:

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

Se rimuovo i parametri ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest dall'oggetto del $ .each funziona bene.

Perché ciò potrebbe accadere?

Grazie in anticipo.

+4

Si prega di formattare il vostro codice, è impossibile da leggere in questo modo. Puoi usare il pulsante di modifica del testo '{}', o indentare ogni riga di codice di 4 spazi. – Sidd

risposta

126

L'operatore in funziona solo sugli oggetti. Lo stai usando su una stringa. Assicurati che il tuo valore sia un oggetto prima di utilizzare $.each. In questo caso specifico, è necessario parse the JSON:

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

Felix, prima di $ .each ho JSON.parse, l'errore appare quando nella chiave submit ha il valore -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6D91591156996E29F7% 3A% 2FMobilTest". –

+0

Inserisci il tuo codice, non posso riprodurre l'errore che stai descrivendo: http://jsfiddle.net/5asbeatq/ –

+2

Non pubblicare una risposta se non è una. [** Modifica la tua domanda **] (http://stackoverflow.com/posts/30269461/edit) e includi il codice pertinente * nella * domanda. –