616 Stimmen

Wie kann ich über eine JSON-Struktur iterieren?

Ich habe die folgende JSON-Struktur:

[{ "id":"10", "class": "child-of-9" }, { "id": "11", "classd": "child-of-10" }]

Wie kann ich sie mit JavaScript durchlaufen?

1 Stimmen

7 Stimmen

"jquery oder javascript"? jquery ist in javascript geschrieben!

9 Stimmen

Es sollte "jQuery oder reines JavaScript" heißen.

586voto

Your Friend Ken Punkte 8164
var arr = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "class": "child-of-10"}];

for (var i = 0; i < arr.length; i++){
  document.write("<br><br>array index: " + i);
  var obj = arr[i];
  for (var key in obj){
    var value = obj[key];
    document.write("<br> - " + key + ": " + value);
  }
}

Hinweis: Die for-in-Methode ist gut für einfache Objekte geeignet. Nicht sehr klug, mit DOM-Objekt zu verwenden.

8 Stimmen

Vergessen Sie nicht, direkt in Ihrem for key in obj Schleife, die obj.hasOwnProperty(key) --- sonst könnten Sie eines Tages andere Schlüssel finden, die sich in obj die Sie nicht haben wollen, wenn zum Beispiel jemand den Prototyp erweitert...

0 Stimmen

Hallo kann ich nur fragen, wenn ich dies verwenden möchten, um eine Remote-Json-Array zu erhalten, wie ich es tun? bitte geben Sie mir einige Anleitung!

0 Stimmen

@AlexanderSupertramp es ist mit Array Literal Notation mit Objekten in Objekt Literal Notation gesetzt. In JavaScript sind Arrays im Wesentlichen auch Objekte. So würde ich immer noch auf die arr ist mit JSON festgelegt.

462voto

Marquis Wang Punkte 10506

Entnommen aus jQuery-Dokumente :

var arr = [ "one", "two", "three", "four", "five" ];
var obj = { one:1, two:2, three:3, four:4, five:5 };

jQuery.each(arr, function() {
  $("#" + this).text("My id is " + this + ".");
  return (this != "four"); // will stop running to skip "five"
});

jQuery.each(obj, function(i, val) {
  $("#" + i).append(document.createTextNode(" - " + val));
});

169 Stimmen

Dies ist eine sehr verwirrende Syntax. Können Sie sie bitte erklären? Können Sie auch die Ausgabe bereitstellen?

154 Stimmen

Die Antwort hätte in JavaScript und nicht in JQuery gegeben werden müssen.

25 Stimmen

@WayneHartman Ich habe Verständnis für Ihren Standpunkt, aber die ursprüngliche Frage lautet "jquery oder javascript". Der Fehler scheint darin zu liegen, dass die Frage nicht mit einem jquery-Tag versehen wurde.

128voto

AlikElzin-kilaka Punkte 31624

Utilisez für...von :

var mycars = [{name:'Susita'}, {name:'BMW'}];

for (var car of mycars) 
{
  document.write(car.name + "<br />");
}

Ergebnis:

Susita
BMW

8 Stimmen

Die Susita ist eine kulturabhängige Variable, nicht wahr? :-)

3 Stimmen

Richtig, eine Variable der obersten Ebene, wie BMW ;-)

14 Stimmen

Dies ist ein normales Array, kein JSON.

100voto

abdulbasit Punkte 1744

Bitte lassen Sie mich wissen, wenn es nicht einfach ist:

var jsonObject = {
  name: 'Amit Kumar',
  Age: '27'
};

for (var prop in jsonObject) {
  alert("Key:" + prop);
  alert("Value:" + jsonObject[prop]);
}

26 Stimmen

Ihr jsonObject ist kein echtes JSON-Objekt. Es ist ein Javascript-Objekt. Deshalb funktioniert es. Wenn jedoch jemand ein JSON-Objekt hat, kann er es in ein JS-Objekt umwandeln und dann Ihre Methode verwenden. Um ein JSON-Objekt in ein JS-Objekt zu konvertieren, verwenden Sie jsObject = JSON.parse(jsonObject);

1 Stimmen

Wenn Sie Ihre Daten über jQuery.getJSON() erfasst haben, funktioniert dies einwandfrei.

39voto

Swapnil Godambe Punkte 2054

Wenn dies Ihr dataArray :

var dataArray = [{"id":28,"class":"Sweden"}, {"id":56,"class":"USA"}, {"id":89,"class":"England"}];

dann:

$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {  
         var ID = this.id;
         var CLASS = this.class;
});

0 Stimmen

Beste Antwort mit JQuery. Ich kodiere Daten aus Backend mit AJAX, so dass ich nicht verwenden 'stringify' Funktion. Code klar und schön!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X