jquery easyUI tree要的 json数据格式为:
[{
"id":1,
"text":"Folder1"
},{
"id":3,
"text":"Folder1"
},{
"id":"402884cf279834ad01279834afde0001","text":"一级"
}]
而我用struts2生成的 json格式为
action 代码:
private List> items;
public List<Map<String, Object>> getItems() {
return items;
}
public void setItems(List<Map<String, Object>> items) {
this.items = items;
}
public String list() {
items = treeService.findNode("0");
return "SUCCESS";
}
输入为:
{"items":[{"id":"402884cf278f43ff01278f4401bc0001","text":"一级","state":"closed"},{"id":"402884cf278f4dcc01278f4dd00d0001","text":"一级","state":"closed"},{"id":"402884cf278f4dd801278f4dda9d0001","text":"一级","state":"closed"},{"id":"402884cf279834a201279834a6030001","text":"一级","state":"closed"},{"id":"402884cf279834ad01279834afde0001","text":"一级","state":"closed"}]}
struts2生成的json带了个"items":所以tree不认这个数据格式,有啥办法能让他俩兼容一下呢,如果struts2生成的json不带"items":该怎么弄呢,谢谢
你在
[quote][object,object],[object,object][/quote]
在action把object对象toString后(或者先转化为字符串),再把字符串(而不是对象)传输到前台
配置一下action
items
现在的json字符串不就是和它要的格式匹配了嘛,它本身就是异步加载的
在js这边弄,
[code="JavaScript"]var str = ....//那段action返回的字符串。
var strjson = eval("("+str+")");//转化为json对象,
var items = strjson.items;//这样获取了你要的格式。[/code]
[quote]如何能把json.items 的json对象转换成向以上格式的json字符串呢 [/quote]
JSON 也是基于纯文本的数据格式.叫它“对象”是因为它可以在JavaScript中作为对象处理。
这样,
[code="JavaScript"]$(function(){
var adata=9;
$.getJSON("http://127.0.0.1:8080/ssh/json/json!list.action",
function(json){
$('#tt2').tree({
data:json.items+"",//加上一个空,让它看起来表示为字符串。
onClick:function(node){
}
});
}
);
}); [/code]
把你页面代码粘上来看
10年的问题,我现在还在纠结,哈哈