java在计算struts2中两次生成的json对象时遇到的问题
我试图在下面的代码中获取JSON对象。问题是,我两次得到这个物体。感谢您的帮助
public class MenuAction {
private String ms;
private List<Menu> menus;
public String getMs() {
return ms;
}
public void setMs(String ms) {
this.ms = ms;
}
//execute method
public String execute(){
menus = new ArrayList<Menu>();
Menu af = new Menu();
af.setText("A Folder");
af.setCls("folder");
af.setLeaf(false);
af.setId(10);
menus.add(af);
List<Menu> aList = new ArrayList<Menu>();
Menu menu;
menu = new Menu();
menu.setText("A Child 1");
menu.setCls("file");
menu.setLeaf(true);
menu.setId(11);
aList.add(menu);
menu = new Menu();
menu.setText("A Child 2");
menu.setCls("file");
menu.setLeaf(true);
menu.setId(12);
aList.add(menu);
af.setChildren(aList);
JSONArray ja = JSONArray.fromObject(menus);
try {
ms = ja.toString();
} catch (Exception e){
ms = "ss";
}
System.out.println(ms);
return Action.SUCCESS;
}
}
它打印的内容如下
[{"children":[{"children":[],"cls":"file","id":11,"leaf":true,"text":"A Child 1"},{"children":[],"cls":"file","id":12,"leaf":true,"text":"A Child 2"}],"cls":"folder","id":10,"leaf":false,"text":"A Folder"}]
[{"children":[{"children":[],"cls":"file","id":11,"leaf":true,"text":"A Child 1"},{"children":[],"cls":"file","id":12,"leaf":true,"text":"A Child 2"}],"cls":"folder","id":10,"leaf":false,"text":"A Folder"}]
基本上,它会两次生成相同的json字符串。为什么会这样
# 1 楼答案
也许你给MenuAction打了两次电话。检查表单/ajax请求