有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    也许你给MenuAction打了两次电话。检查表单/ajax请求