的JSON樹內的任何值/對象我有一個包含節點和兒童JSON樹 - 格式爲:建設性操縱未知深度
jsonObject =
{
id:nodeid_1,
children: [
{
id:nodeid_2,
children:[]
},
{
id:nodeid_3,
children:[
{
id:nodeid_4,
children:[]
},
{
id:nodeid_5,
children:[]
}
}
}
我不知道這樹的深度,一個節點能夠擁有許多也有許多孩子的孩子等等。
我的問題是我需要通過使用nodeID將節點添加到此樹中。例如,一個可以接受nodeID和節點對象(包括其子節點)的函數將能夠替換該樹中的該節點 - 因此會變成更大的樹。
我只遇到遞歸函數,它允許我遍歷JSON樹中的所有節點,並且我對這些函數之一所做的修改將返回節點對象 - 但不幫助我,因爲我需要修改原來的樹:
var findNode = {
node:{},
find:function(nodeID,jsonObj) {
if(typeof jsonObj == "object") {
$.each(jsonObj, function(k,v) {
if(v == nodeID) {
findNode.node = $(jsonObj).eq(0).toArray()[0];
} else {
findNode.find(nodeID,v);
}
});
} else {
//console.log("jsobObj is not an object");
}
}
}
,讓我做如下測試:
findNode.find("nodeid_3",json);
alert(findNode.node);
所以總結起來 - 我該如何修改具有未知深度的JSON樹的價值?
在此先感謝
嗨,@TJCrowder,'jsonObject'不是一個json,它是一個js對象。 – 2013-03-20 06:04:53
@ Joe.wang:我知道。 (事實上,這是我的寵兒之一)我認爲你打算在丹指導。 – 2013-03-20 11:53:46