J'ai un fichier local JSON qui ressemble à:
{
"sites" : [
{
"name" : "Somename",
"url" : "https://url.com",
"api" : "http://url.com/api",
},
{
"name" : "Somename2",
"url" : "https://url2.com",
"api" : "http://url2.com/api",
}
}
Chaque api
a une seule donnée entière que je dois stocker dans la base de données. Comment puis-je répéter un tel JSON en Javascript? Dès que je serai en mesure de récupérer cette URL, je pourrai écrire une autre fonction et obtenir l'entier que je veux. J'ai essayé:
function getNetworkData(){
$.getJSON('../json/sites/site-list.json', function(data) {
var sites = JSON.parse(data);
sites.forEach(function(data){
console.log(data.sites[0].name)
});
});
}
... mais ça ne marche pas. Je continue d'avoir une erreur:
Jeton inattendu o dans JSON en position 1
4 réponses
La fonction $.getJSON
analyse déjà la réponse du serveur / source.
Donc, vous n'avez pas besoin de l'analyser en utilisant JSON.parse
, en outre, vous essayez de boucler en utilisant le tableau comme suit:
sites.forEach
Ce que vous voulez vraiment, c'est boucler l'attribut sites
:
data.sites.forEach(function(s){
console.log(s.name);
});
Comme ça:
function getNetworkData(){
$.getJSON('../json/sites/site-list.json', function(data) {
data.sites.forEach(function(site){
console.log(site.name)
});
});
}
L'objet que vous parcourez n'a pas besoin de l'index.
site
est déjà égal à sites [0] sur la première boucle, sites [1] sur la deuxième boucle, etc., il vous suffit donc de site.name
Ignorer JSON.parse(data)
; Vous obtiendrez un objet avec $.getJSON()
que vous pourrez manipuler. Voir getJson
Vous avez déjà obtenu JSON, il n'est pas nécessaire d'analyser. Reportez-vous à jQuery.getJSON
Mise à jour depuis
var sites = JSON.parse(data);
sites.forEach(function(data){
console.log(data.sites[0].name)
});
À
data.sites.forEach(function(site){
console.log(site.name); // prints name
console.log(site.api); // prints api
});
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.