2016-06-29 3 views
1

I wie unten ein JSON-Objekt zu suchen habe:

var data = "{'key1' : 'value1', 'key2' : 'value2'}"; 

Wie es im JSON-Format, kein Parsing erforderlich, so dass ich nur wollen, das Objekt mit $ .each wie unten iterieren:

$.each(data, function(index, value) { 
    alert(index + ": " + value); 
}); 

Es wirft ein Konsolen Fehler

Uncaught TypeError: Cannot use 'in' operator to search for '37' in {'key1' : 'value1', 'key2' : 'value2'}(…) 

Ich habe keine Ahnung, was schief läuft. Was ist es?

+0

Daten String und Event kein gültiger JSON –

+0

@Pranav Können Sie das näher erläutern? – Prasad

+1

$ .Each kann für ein Objekt oder ein Array gelten ... aber Sie verwenden eine Zeichenfolge mit, entweder erstellen Sie ein Objekt oder gültige JSON und Parsen –

Antwort

3

Sie müssen nur die Art und Weise Wert auf Datenvariable so etwas wie unten zugewiesen ändern: ein

var data = {key1 : 'value1', key2 : 'value2'}; 

anstelle von

var data = "{'key1' : 'value1', 'key2' : 'value2'}"; 
+0

Erklären der Unterschied wäre wahrscheinlich hilfreich. –

+0

Zuvor wurden Daten im String-Format zugewiesen. Also muss ** ** von Anfang und Ende entfernt werden, um es zu einem Objekt zu machen. Und der Schlüssel hat keinen Typ, also muss man den Schlüssel nicht mit ** '** umhüllen. Nach diesen Änderungen wird es also ein richtiges Objekt sein Mehrere Schlüssel/Wert-Paare – PratikSatikunvar

+0

Sie können Ihre Antwort bearbeiten, um diese Informationen hinzuzufügen. –

0

Mit diesem Code:

$.each(JSON.parse(data), function(index, value) { 
    alert(index + ": " + value); 
}); 
+1

nicht gültig JSON-String –

1

Es ist keine gültige Json. damit es Fehler wirft.

$(document).ready(function() { 

    var data = {}; 
    data.key1 = "value1"; 
    data.key2 = "value2"; 

    $.each(data, function(index, value) { 
     alert(index + ": " + value); 
     }); 
}); 

Demo: https://jsfiddle.net/0d7st5q7/

+0

data = "{'key1': 'value1', 'key2': 'value2'}" ist das falsch? – Prasad

+0

Die Datenvariable muss mit dem Datenattribut aus dem dom-Element – Prasad

+0

yup festgelegt werden, da es als Zeichenfolge behandelt wird, und wenn Sie versuchen, das konvertierte JSON-Objekt zu konvertieren, können Fehler aufgrund von ASCII-Zeichen auftreten. Sie können auf diese Weise auch ein Objekt deklarieren. 'code' \t var data = {Schlüssel1:" Wert1 ", Schlüssel2:" Wert2 "}; – Subash

Verwandte Themen