免责声明:我知道如何使用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;
&#34;长寿,繁荣&#34;
提前致谢。
答案 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>