Come faccio a scorrere su una struttura JSON?

Ho la seguente struttura JSON:

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

Come faccio a scorrere su di esso utilizzando jQuery o JavaScript?

Tratto da documenti jQuery :

 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)); }); 
 var arr = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "classd": "child-of-10"}]; for (var i = 0; i < arr.length; i++){ var obj = arr[i]; for (var key in obj){ var attrName = key; var attrValue = obj[key]; } } 
 var arr = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "class": "child-of-10"}]; for (var i = 0; i < arr.length; i++){ document.write("

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

Usa foreach :

      

Risulterà in:

 Susita BMW 

Per favore fatemi sapere se non è facile:

  var jsonObject = { name: 'Amit Kumar', Age: '27' }; for (var prop in jsonObject) { alert("Key:" + prop); alert("Value:" + jsonObject[prop]); } 

Se questo è il tuo data dataArray :

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

poi:

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

esempio di mootools:

 var ret = JSON.decode(jsonstr); ret.each(function(item){ alert(item.id+'_'+item.classd); }); 

Copiato e incollato da http://www.w3schools.com , non è necessario il sovraccarico di JQuery.

 var person = {fname:"John", lname:"Doe", age:25}; var text = ""; var x; for (x in person) { text += person[x]; } 

RISULTATO: John Doe 25

Puoi utilizzare una mini libreria come objx – http://objx.googlecode.com/

Puoi scrivere un codice come questo:

 var data = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "class": "child-of-10"}]; // alert all IDs objx(data).each(function(item) { alert(item.id) }); // get all IDs into a new array var ids = objx(data).collect("id").obj(); // group by class var grouped = objx(data).group(function(item){ return item.class; }).obj() 

Sono disponibili altri “plug-in” per consentire di gestire i dati in questo modo, vedi http://code.google.com/p/objx-plugins/wiki/PluginLibrary

questo è un puro esempio JavaScript commentato.

   // call function here 

Con oggetti nidificati, può essere recuperato come per funzione ricorsiva:

 function inside(events) { for (i in events) { if (typeof events[i] === 'object') inside(events[i]); else alert(events[i]); } } inside(events); 

dove come eventi è l’object json.

Marquis Wang potrebbe essere la migliore risposta quando si usa jQuery.

Ecco qualcosa di abbastanza simile in puro JavaScript, usando il metodo forEach di JavaScript. forEach accetta una funzione come argomento. Quella funzione verrà quindi chiamata per ogni elemento dell’array, con detto elemento come argomento.

Breve e facile:

  

Un’altra soluzione per navigare tra i documenti JSON è JSONiq (implementata nel motore Zorba ), dove puoi scrivere qualcosa come:

 jsoniq version "1.0"; let $doc := [ {"id":"10", "class": "child-of-9"}, {"id":"11", "class": "child-of-10"} ] for $entry in members($doc) (: binds $entry to each object in turn :) return $entry.class (: gets the value associated with "class" :) 

Puoi eseguirlo su http://try.zorba.io/

 var jsonString = "{\"schema\": {\"title\": \"User Feedback\", \"description\":\"so\", \"type\":\"object\", \"properties\":{\"name\":{\"type\":\"string\"}}}," + "\"options\":{ \"form\":{\"attributes\":{}, \"buttons\":{ \"submit\":{ \"title\":\"It\", \"click\":\"function(){alert('hello');}\" }}} }}"; var jsonData = JSON.parse(jsonString); function Iterate(data) { jQuery.each(data, function (index, value) { if (typeof value == 'object') { alert("Object " + index); Iterate(value); } else { alert(index + " : " + value); } }); }; Iterate(jsonData);