如何从此STRING中获取ID并将其中的子项连续显示?

时间:2015-07-29 13:31:24

标签: javascript jquery string

免责声明:我知道如何使用JSON,我需要知道如何将其作为 STRING

我试图获得"ID":"children":,我可以得到两者但不是按顺序。目前我只能"ID":"children":而不是两者,我怎么能这样做,是否有任何帮助?

我的目标

  

1,3,2

我想要的内容

  

1,儿童,3,2

基本上,我要问的是将这两者合二为一(好吧,以某种方式将它们按顺序排列)

  

var t1 = data.match(/" id":[0-9] +(,|})* / g);

     

var t2 = data.match(/" children":/ g);

我的代码就在下方:



var data = '[{"name":"node1","id":1,"is_open":true,"children":[{"name":"child2","id":3},{"name":"child1","id":2}]}]';
var arrays = [];
var t1 = data.match(/"id":[0-9]+(,|})*/g);
//arrays = t1;
for (var x = 0; x < t1.length; x++) {
  arrays.push(t1[x].match(/\d+/));

}
//var t2=data.match(/"children":/g);
alert(arrays /*+"\n\n\n\n\n"+t2*/ );
&#13;
&#13;
&#13;

&#34;长寿,繁荣&#34;

提前致谢。

1 个答案:

答案 0 :(得分:2)

我正在使用jQuery。我认为你使用它是因为你创建的标签。

<强> DEMO

var data = '[{"name":"node1","id":1,"is_open":true,"children":[{"name":"child2","id":3},{"name":"child1","id":2}]}]';
var arrays = [];
//convert you string to object
//or you can simply change your first row.
data = $.parseJSON(data);
//function to loop the array
function listNodes(inputVal){
    if(jQuery.isArray( inputVal )){
        $.each(inputVal, function(i,elem){
            arrays.push(elem.id);
            console.log(elem);
            if(jQuery.isArray( elem.children )){
                arrays.push('children');
                listNodes(elem.children);
            }
        })
    }
}
listNodes(data);
alert(arrays /*+"\n\n\n\n\n"+t2*/ );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>