print parse ejemplo array javascript jquery json loops

parse - string to json javascript



¿Cómo itero sobre una estructura JSON? (13)

Esta pregunta ya tiene una respuesta aquí:

Tengo la siguiente estructura JSON:

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

¿Cómo itero sobre él usando jQuery o JavaScript?


Con objetos anidados, se puede recuperar como por función recursiva:

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

donde como eventos es objeto json.


Copiado y pegado desde http://www.w3schools.com , no hay necesidad de la sobrecarga de JQuery.

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

RESULTADO: John Doe 25


Ejemplo de mootools:

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


Este es un ejemplo puro de JavaScript comentado.

<script language="JavaScript" type="text/javascript"> function iterate_json(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file hr.open("GET", "json-note.php", true);//this is your php file containing json hr.setRequestHeader("Content-type", "application/json", true); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var data = JSON.parse(hr.responseText); var results = document.getElementById("myDiv");//myDiv is the div id for (var obj in data){ results.innerHTML += data[obj].id+ "is"+data[obj].class + "<br/>"; } } } hr.send(null); } </script> <script language="JavaScript" type="text/javascript">iterate_json();</script>// call function here


Marquis Wang puede ser la mejor respuesta al usar jQuery.

Aquí hay algo bastante similar en JavaScript puro, utilizando el método forEach de JavaScript. forEach toma una función como un argumento. Luego se llamará a esa función para cada elemento de la matriz, con dicho elemento como argumento.

Corto y fácil:

<script> var results = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "classd": "child-of-10"}]; results.forEach( function( item ) { console.log( item ); }); </script>


Otra solución para navegar a través de documentos JSON es JSONiq (implementado en el motor Zorba ), donde puede escribir algo como:

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" :)

Puedes ejecutarlo en http://try.zorba.io/


Por favor déjame saber si no es fácil:

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


Puede usar una mini biblioteca como objx - http://objx.googlecode.com/

Puedes escribir código como este:

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()

Hay más ''complementos'' disponibles para permitirle manejar datos como este, consulte http://code.google.com/p/objx-plugins/wiki/PluginLibrary


Si esta es tu dataArray :

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

entonces:

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


Tomado de documentos de 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)); });


Utilice foreach :

<html> <body> <script type="text/javascript"> var mycars = [{name:''Susita''}, {name:''BMW''}]; for (i in mycars) { document.write(mycars[i].name + "<br />"); } </script> </body> </html>

Resultará en:

Susita BMW


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

nota: el método for-in es genial para objetos simples. No es muy inteligente de usar con el objeto DOM.


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);