求解析一个JSON字符串获取目前级别父级的ID!
求解析一个JSON字符串获取当前级别父级的ID!!!

[{"Id":1,"Name":"机构1","ParentId":0},{"Id":4,"Name":"机构11","ParentId":1},{"Id":2,"Name":"机构2","ParentId":1},{"Id":3,"Name":"机构3","ParentId":2},{"Id":21,"Name":"机构111","ParentId":4}]
现在我有Name=机构111的Id:21,需要获取字符串格式是“4,1”(即当前的ParentId:4和ID:4的父级菜单ParentId:1),请注意菜单是无限极分类的,不固定几层!
------解决方案--------------------
你的问题需要再确切些:
你所要求返回数据,是在什么情况下触发的?
如果是在点击checkbox后触发的,那这个问题就非常简单了。
如果不是触发的,如果仅仅是在json内部里面处理。
知道了底层的某个id,获取json里面高层的数据,这就无法实现了
可以从高层依次向下获取,当时不能从底层依次向上获取
------解决方案--------------------
递归就可以了
------解决方案--------------------
[{"Id":1,"Name":"机构1","ParentId":0},{"Id":4,"Name":"机构11","ParentId":1},{"Id":2,"Name":"机构2","ParentId":1},{"Id":3,"Name":"机构3","ParentId":2},{"Id":21,"Name":"机构111","ParentId":4}]
现在我有Name=机构111的Id:21,需要获取字符串格式是“4,1”(即当前的ParentId:4和ID:4的父级菜单ParentId:1),请注意菜单是无限极分类的,不固定几层!
------解决方案--------------------
你的问题需要再确切些:
你所要求返回数据,是在什么情况下触发的?
如果是在点击checkbox后触发的,那这个问题就非常简单了。
如果不是触发的,如果仅仅是在json内部里面处理。
知道了底层的某个id,获取json里面高层的数据,这就无法实现了
可以从高层依次向下获取,当时不能从底层依次向上获取
------解决方案--------------------
递归就可以了
function getParentId(id){
var arr = new Array();
$.each(json, function(i,item){
if(item.Id==id && item.ParentId!=0){
arr.push(item.ParentId);
arr = arr.concat(getParentId(item.ParentId));
}
});
return arr;
}
------解决方案--------------------
<script>
var s = eval([{ "Id": 1, "Name": "机构1", "ParentId": 0 }, { "Id": 4, "Name": "机构11", "ParentId": 1 }, { "Id": 2, "Name": "机构2", "ParentId": 1 }, { "Id": 3, "Name": "机构3", "ParentId": 2 }, { "Id": 21, "Name": "机构111", "ParentId": 4}]);
p = GetParentId(21);
q = GetParentId(p);
alert(p + ":" + q);
function GetParentId(id) {
var n = "";