2011-01-11 4 views
0

J'ai été bloqué en essayant d'analyser cela. J'ai essayé google et il ne semble pas fonctionner ...JSON Jquery parse

Voici le JSON:

{ 
"1": [ 
    { 
     "SUBCATEGORY_ID": "1", 
     "CATEGORY_ID": "1", 
     "NAME": "Sonic", 
     "SORTS": "1" 
    } 
], 
"2": [ 
    { 
     "SUBCATEGORY_ID": "2", 
     "CATEGORY_ID": "2", 
     "NAME": "Captain Planet", 
     "SORTS": "1" 
    }, 
    { 
     "SUBCATEGORY_ID": "3", 
     "CATEGORY_ID": "2", 
     "NAME": "Rocco Mordern life", 
     "SORTS": "2" 
    }, 
    { 
     "SUBCATEGORY_ID": "4", 
     "CATEGORY_ID": "2", 
     "NAME": "Sponge BOB", 
     "SORTS": "3" 
    } 
] 

}

Ceci est mon code jquery:

jQuery(document).ready(function(){ 
    $.ajax({ 
     dataType: 'json', 
     url: 'subcategoriesAjax.php', 
     success: function(data){ 
       //alert(data.1[0]); 
     } 
    }); 
}); // $(document).ready(function(){ 

Il ne semble pas fonctionner. J'ai aussi essayé data.1.0 & data.1[0].SORTS.

Merci!

+0

Avez-vous essayé 'data [ "1"] [0] .SORTS'? :) – Matt

Répondre

4
data["1"][0] 

devrait faire l'affaire

+1

Vous n'avez même pas besoin des guillemets – 6502

+0

techniquement vrai, seulement fait ici pour la lisibilité, pour faire la différence entre l'utilisation des opérateurs [[] 'pour l'accès au tableau et l'accès aux objets. – Dereleased

1

Vous ne pouvez pas utiliser la notation des points aux propriétés accès quand ils sont des nombres. Utilisez la notation semblable à un tableau à la place:

data['1'][0] 

Encore mieux serait d'utiliser autre chose qu'un numéro comme la clé, ou d'utiliser un tableau normal.

0

essayer:

...

succès: function (données) { alerte (data.d); }

...

0
alert(data["1"][0]["SUBCATEGORY_ID"]); 

Résultat de cette alerte est 1.

+0

Ça n'a pas marché mais merci. alert (données ["1"] [0] .SUBCATEGORY_ID); Cela a fonctionné bien. – mythicalprogrammer

+0

J'ai essayé ma solution et cela a fonctionné pour moi. Je suis content que tu aies résolu ton problème. À votre santé :) – Diablo