2013-06-05 2 views
-3

J'ai une table arborescente qui contient de nombreuses cases à cocher. Chaque case à cocher il stocke la structure elle-même. Par exemple /root/entity_child/0/entity_child/1. A partir de ces données, je voudrais l'utiliser et lire l'objet Json à partir de mes données Json.Comment accéder aux données Json dans ce cas?

Pour obtenir les bonnes données, j'ai besoin de quelque chose comme mydata.root.entity_child [0] .entity_child [1]. Mais je ne sais pas comment dois-je appliquer mes données brutes qui sont des chaînes pour obtenir les données que je veux.

Disons, je chaîne de /root/entity_child/0/entity_child/1, comment puis-je transformer cela mydata.root.entity_child[0].entity_child[1] in javascript?

Toutes les idées?

+0

Je n'ai aucune idée de votre question. De quelle langue parle-t-on même? –

+0

@NielsKeurentjes Je viens de javascript – user2335149

+0

Mais quel est votre ** problème ** actuel? Quel code as-tu écrit? Que fait-il et que ne fait-il pas? Quelle sortie attendez-vous? –

Répondre

0

De votre question, il est difficile de savoir si vous avez besoin de:

  • La valeur de mydata.root.entity_child[0].entity_child[1],
  • Ou tout simplement la chaîne "mydata.root.entity_child[0].entity_child[1]"

Si vous voulez la valeur, vous pouvez diviser la chaîne par "/" et faire une boucle:

function getValue(path, from){ 
    var splitStr = path.substr(1).split('/'); 
    var val = from; 

    for(var i = 0; i < splitStr.length; i ++){ 
     val = val[splitStr[i]]; 
    } 

    return val; 
} 

getValue('/root/entity_child/0/entity_child/1', mydata); 

Ou si vous voulez seulement la chaîne, alors vous pouvez faire tout en une ligne en utilisant regex:

'mydata' + '/root/entity_child/0/entity_child/1'.replace(/\/([0-9]+)/g, "[$1]").replace(/\//g, '.'); 
Questions connexes