Question Comment effectuer une itération sur une structure JSON? [dupliquer]


Cette question a déjà une réponse ici:

J'ai la structure JSON suivante:

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

Comment puis-je itérer sur jQuery ou JavaScript?


411
2017-07-03 07:09


origine


Réponses:


Pris à partir de Documentation 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));
});

386
2017-07-03 07:12



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

remarque: la méthode for-in est cool pour les objets simples. Pas très intelligent à utiliser avec l'objet DOM.


456
2017-07-11 00:51



Utilisation pour chaque:

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

Aura pour résultat:

Susita
BMW

71
2017-12-05 13:24



S'il vous plaît laissez-moi savoir si ce n'est pas facile:

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

50
2018-05-30 11:36



Si c'est votre dataArray:

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

puis:

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

37
2017-10-03 10:36



exemple mootools:

var ret = JSON.decode(jsonstr);

ret.each(function(item){
    alert(item.id+'_'+item.classd);
});

12
2017-07-03 07:12



Copié et collé à partir de http://www.w3schools.com, il n'y a pas besoin de la surcharge JQuery.

var person = {fname:"John", lname:"Doe", age:25};

var text = "";
var x;
for (x in person) {
    text += person[x];
}

RÉSULTAT: John Doe 25


11
2018-05-09 13:46



Vous pouvez utiliser une mini-bibliothèque comme objx - http://objx.googlecode.com/

Vous pouvez écrire du code comme ceci:

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

Il y a plus de "plugins" disponibles pour vous permettre de gérer des données comme celle-ci, voir http://code.google.com/p/objx-plugins/wiki/PluginLibrary


9
2017-07-03 14:51



ceci est un exemple JavaScript purement commenté.

  <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

8
2018-01-21 15:56



Avec les objets imbriqués, il peut être récupéré par une fonction récursive:

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

où en tant qu'événements est un objet json.


7
2018-03-22 07:47