var json = [L'exécution de cet exemple déroule correctement et les villes sont affichées dans une boite d'alerte. Un problème fréquent concernant la déclaration d'un JSON de type string avec un seul ou double quottes.
{"id":"1","text":"paris"},
{"id":"2","text":"marseille"},
{"id":"3","text":"lille"},
{"id":"4","text":"metz"},
{"id":"5","text":"renne"}
];
$.each(json, function(i, obj) {
alert(obj.text);
});
var json = '[{"id":"1","ville":"paris"},{"id":"2","ville":"marseille"},Le navigateur Chrome affiche cette erreur dans la console:
{"id":"3","ville":"lille"},{"id":"4","ville":"metz"},
{"id":"5","ville":"renne"}]';
$.each(json, function(i, obj) {
alert(obj.ville);
});
Uncaught TypeError: Cannot use 'in' operator to search for ...La solution idéale est de convertir JSON en un objet JavaScript avec la fonction JSON.parse() ou la fonction jQuery $.parseJSON.
in [{"id":"1","ville":"paris"}...
$.each(JSON.parse(json), function(i, obj) {
alert(obj.ville);
});
//ou
$.each($.parseJSON(json), function(i, obj) {
alert(obj.ville);
});
<!doctype html>Ressources:
<html lang="en">
<head>
<meta charset="utf-8">
<title>exemple de la boucle javascript for et JSON</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>
$(function() {
var data = [
{"id":"1","name":"Un"},
{"id":"2","name":"Deux"},
{"id":"3","name":"Trois"},
{"id":"4","name":"Quatre"},
{"id":"5","name":"Cinq"}
];
var data_length = data.length;
for (var i = 0; i < data_length; i++) {
alert(data[i]["id"] + " " + data[i]["name"]);
}
});
</script>
</body>
</html>
Please disable your ad blocker and refresh the window to use this website.