2014-05-18 3 views
0

me reste que cette JSON:Travailler avec JSON en utilisant Jquery

[{"pk": 1, "fields": {"name": "name 1", "description": "description 1", "image": "absolute url 1"}, "pk": 2, "fields": {"name": "name 2", "description": "description 2", "image": "absolute url 2"}}] 

et je besoin d'un accès aux champs, par exemple

$.getJSON("/json/", function(data) { 
    $.each(data, function(key, value) { 
     $.('#id1').append([data.pk]); 
     $.('#id2').append([data.fields.name]); 
+0

Voulez-vous dire value.pk et value.fields .... –

+0

Vous devez donner plus d'informations sur exactement ce que vous voulez faire et où vous rencontrez des problèmes. Sans cela, personne ne peut vraiment vous aider. – plocks

+1

Le JSON est incorrect. Vous avez des propriétés dupliquées 'pk' et' field' dans le même objet. – Guffa

Répondre

1

Il y a plusieurs erreurs dans votre code. Votre JSON est également mal formé.

var data = [{ 
    "pk": 1, 
    "fields": { 
     "name": "name 1", 
     "description": "description 1", 
     "image": "absolute url 1" 
    }, 
    "pk": 2, 
    "fields": { 
     "name": "name 2", 
     "description": "description 2", 
     "image": "absolute url 2" 
    } 
}]; 

Il n'a qu'un seul objet avec plusieurs propriétés similaires, la dernière propriété similaire écrase le précédent, cela signifie que pk propriété par exemple de l'objet est réglé sur 2. Il est sans doute censé avoir cette structure (un tableau de 2 objets): Note

$.each(data, function (index, value) { 
    console.log("pk: ", value.pk); 
    console.log("fields.name: ", value.fields.name); 
}); 

également que la création d'un:

var data = [ 
{ 
    "pk": 1, 
    "fields": { 
     "name": "name 1", 
     "description": "description 1", 
     "image": "absolute url 1" 
    } 
}, 
{ 
    "pk": 2, 
    "fields": { 
     "name": "name 2", 
     "description": "description 2", 
     "image": "absolute url 2" 
    } 
}]; 

maintenant, vous pouvez lire cette façon les propriétés des objets objet jQuery vous devez retirer le .:

$('#id1').append(value.pk); 
+0

Oui! Je l'ai fait avec votre réponse, merci beaucoup! – Raido