-3

我有一个包含许多复选框的树表。每个复选框都存储结构本身。例如/root/entity_child/0/entity_child/1. 从这些数据中,我想使用它并从我的 Json 数据中读取 Json 对象。

为了获得正确的数据,我需要 mydata.root.entity_child[0].entity_child[1] 之类的东西。但我不知道我应该如何应用我的原始数据(字符串)来获取我想要的数据。

比方说,我有一串,我/root/entity_child/0/entity_child/1怎么能把它转换成mydata.root.entity_child[0].entity_child[1] in javascript?

有任何想法吗?

4

1 回答 1

0

从您的问题中不清楚您是否需要:

  • 的值mydata.root.entity_child[0].entity_child[1]
  • 或者只是字符串"mydata.root.entity_child[0].entity_child[1]"

如果你想要这个值,那么你可以分割字符串"/"并循环:

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);

或者,如果您只想要字符串,那么您可以使用正则表达式在一行中完成所有操作:

'mydata' + '/root/entity_child/0/entity_child/1'.replace(/\/([0-9]+)/g, "[$1]").replace(/\//g, '.');
于 2013-06-05T16:49:18.227 回答