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.