我正在尝试在以下代码中获取 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 字符串两次。为什么要这样做?
最佳答案
也许您调用了 MenuAction 两次。检查您的表单/ajax 请求。
关于java - 计算在 struts2 中生成两次的 json 对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2238916/