J'ai nié objet JSON comme
{"baseball":
{"mlb":
{"regular":
{"_events": [{"start_time": "2011-07-31 17:35", "lines":
[{"comment": "", "coeff": "2.35", "title": "2", "old_coeff": "2.35", "is_main": true},
{"comment": "", "coeff": "1.59", "title": "2", "old_coeff": "1.59", "is_main": true},
{"comment": "", "coeff": "1.59", "title": "2", "old_coeff": "1.59", "is_main": true},
{"comment": "", "coeff": "2.35", "title": "2", "old_coeff": "2.35", "is_main": true}],
"members": ["atlanta", "florida"]
}
]
}}}}
3 Réponses :
En supposant que vous avez ci-dessus dans une chaîne appelée entrée (et que le JSON est valide): P>
// find the _events key
var tmp = input.substr(input.indexOf("_events"))
// grab the maximum array contents.
tmp = tmp.substring( tmp.indexOf( "[" ), tmp.indexOf( "]" ) + 1 );
// now we have to search the array
var len = tmp.length;
var count = 0;
for( var i = 0; i < len; i++ )
{
var chr = tmp.charAt(i)
// every time an array opens, increment
if( chr == '[' ) count++;
// every time one closes decrement
else if( chr == ']' ) count--;
// if all arrays are closed, you have a complete set
if( count == 0 ) break;
}
var events = JSON.parse( tmp.substr( 0, i + 1 ) );
"Mais je ne sais pas ce qui sera dans les cellules avant _Events et comment ils le feront." Et comment je peux utiliser la réponse?
La chose la plus facile à faire dans cette situation, je trouve, est d'aller à Jsfiddle , coller dans votre JSON comme variable: puis à l'aide de chrome, "Vue" -> "Developer" -> "Console JavaScript" Commencez à expérimenter avec quelle est la structure de données afin de construire votre Fonction d'analyse. P> puis commencer à expérimenter avec la structure. Par exemple. P> ou si vous allumez jQuery: p> Si vous avez des difficultés en cours de chargement dans ce JSON Dans une variable, vous aurez besoin de json.parse une chaîne récupérée via un appel AJAX que je soupçonne. p> p>
Le problème est que je ne sais pas quelle sera la structure, je dois juste aller à la partition _events de manière récursive, puis analyser les matrices de données sont déjà. Et donc, je ne sais pas comment je peux faire de la récursion pour cette tâche =)
recursiveGetProperty(yourObject, '_events', function(obj) {
// do something with it.
});
J'ai ajouté des raccourcis clavier pour obtenir l'inspecteur Web sur Mac.
Si j'envoie ' membres code>' comme argument, il est indiqué la taille maximale de la pile dépassée code>.
J'ai peur que ce soit un bon exemple de quand utiliser XML au lieu de JSON, car vous pouvez utiliser XPath pour des choses comme ça.
@Gabi purcaru c'est JSON !!! Essayez de le vérifier chez JSONLINT.COM et vous obtenez upvote pour cela, WOW!
@Bakudan Ce n'était pas avant que l'Op l'a modifiée.