Utilizzare un arrays JSON con oggetti con javascript

Ho una function che otterrà un arrays JSON con oggetti. Nella function sarò in grado di passare attraverso l'arrays, accedere a una properties; e utilizzare quella properties;. Come questo:

Variabile che passerò alla function sarà simile a questa:

[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}] function test(myJSON) { // maybe parse my the JSON variable? // and then I want to loop through it and access my IDs and my titles } 

Quali suggerimenti su come posso risolverlo?

Questo non è un singolo object JSON. Hai una serie di oggetti JSON. Devi prima eseguire loop sull'arrays e quindi accedere a ciascun object. Forse il seguente esempio di kickoff è utile:

 var arraysOfObjects = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]; for (var i = 0; i < arraysOfObjects.length; i++) { var object = arraysOfObjects[i]; for (var property in object) { alert('item ' + i + ': ' + property + '=' + object[property]); } // If property names are known beforehand, you can also just do eg // alert(object.id + ',' + object.Title); } 

Per ulteriori informazioni su JSON, controlla questo articolo .

Aggiornamento : se l'arrays di oggetti JSON è passata in realtà come una string di vaniglia, allora dovresti effettivamente avere bisogno di eval() .

 var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]'; var arraysOfObjects = eval(string); // ... 

Questo è il tuo dataArray :

 [ { "id":28, "Title":"Sweden" }, { "id":56, "Title":"USA" }, { "id":89, "Title":"England" } ] 

Quindi parseJson può essere utilizzato:

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

Con 'JSON arrays containing objects' suppongo che si intenda una string contenente JSON?

Se è così, puoi utilizzare il metodo safe var myArray = JSON.parse(myJSON) (nativo o incluso con JSON2 ) o il usafe var myArray = eval("(" + myJSON + ")") . Eval dovrebbe essere normalmente evitato, ma se sei sicuro che il contenuto è sicuro, allora non esiste alcun problema.

Dopo di che si esegue solo l'iterazione sopra l'arrays come normale.

 for (var i = 0; i < myArray.length; i++) { alert(myArray[i].Title); } 

La tua domanda si sente un po 'incompleta, ma penso che quello che stai cercando è un modo per rendere il tuo JSON accessibile al tuo codice:

se si dispone della string JSON come sopra, allora è sufficiente farlo

 var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]'); 

allora potete accedere a queste arche con qualcosa di simile a jsonObj [0] .id etc

Fathemes sapere se non è quello che stai cercando e cercherò di aiutarti.

M

@Swapnil Godambe Funziona per me se JSON.stringfy viene rimosso. Questo è:

 $(jQuery.parseJSON(dataArray)).each(function() { var ID = this.id; var TITLE = this.Title; }); 
 var datas = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]; document.writeln("<table border = '1' width = 100 >"); document.writeln("<tr><td>No Id</td><td>Title</td></tr>"); for(var i=0;i<datas.length;i++){ document.writeln("<tr><td>"+datas[i].id+"</td><td>"+datas[i].Title+"</td></tr>"); } document.writeln("</table>");