日期:2014-05-16  浏览次数:20415 次

在线等...复杂JSON数据处理问题
JScript code

[{"mapTypeId":10047,"mapTypeName":"文件档案部",
    "maps":[{"mapId":10002"mapName":"时间到了地方"}
            ,{"mapId":10021"mapName":"test_03-21"}
            ]
}
,{"mapTypeId":10054,"mapTypeName":"慈善A部",
    "maps":[{"mapId":10009"mapName":"阿松岛换个环境来"}
            ]
}
]



后台可以得到这种数据,前台如何接收?求高手解答。
注:一个部门对应多个小部门的多个属性,不是树状结构。

------解决方案--------------------
后台如何组装,前台就如何接收
------解决方案--------------------
mapId与mapName中间是不是少个逗号
code如下:
function callBack(data){
var d = eval(data);
var l =d.length;
for(index = 0;index<l;index++){
document.write(d[index].mapTypeId+" "+d[index].mapTypeName);
var ll = d[index].maps;
for(var i=0;i<ll.length;i++){
document.write((d[index].maps)[i].mapid+" "+(d[index].maps)[i].mapName);
}
}
}
------解决方案--------------------
前台获取数据
var json="[{"mapTypeId":10047,"mapTypeName":"文件档案部",
"maps":[{"mapId":10002"mapName":"时间到了地方"}
,{"mapId":10021"mapName":"test_03-21"}
]
}
,{"mapTypeId":10054,"mapTypeName":"慈善A部",
"maps":[{"mapId":10009"mapName":"阿松岛换个环境来"}
]
}
]"

var newJson=eval(json);
获取具体的 
newJson[0].mapTypeId ;
newJson[0].mapTypeName;
newJson[0].maps.mapId;
newJson[0].maps.mapName;
这样即可 循环可取出所有
------解决方案--------------------
var newJson=eval(json);
var str="<table>"
for (var i=0; i< newJson.length; i++)
{
var maps = newJson[i].maps;
str += "<tr ><td rowspan='"+maps.length+"'>"+newJson[i].mapTypeId+"</td><td rowspan='"+maps.length+"'>"+newJson[i].mapTypeName+"</td>";
if (maps.length>0)
{
str+="<td>"+maps[0].mapId+"</td><td>"+maps[0].mapName+"</td></tr>";
}
else
{
str+="</tr>";
}
if (maps.length>1)
{
for (var j=1;j<maps.length;j++)
{
str+="<tr><td>"+maps[j].mapId+"</td><td>"+maps[j].mapName+"</td></tr>";
}
}
 
 
}
str+="</table>"