Java 从Jackson解析器生成JSON

Java 从Jackson解析器生成JSON,java,json,parsing,jqgrid,jackson,Java,Json,Parsing,Jqgrid,Jackson,我正在Java中使用Jackson解析器,我想从的Java对象生成JSON字符串,格式如下。我该怎么做 {“TOTAL”:1,“CURRENTPAGE”:1,“TOTALRECORDS”:6,“ROWS”:[{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pa

我正在Java中使用Jackson解析器,我想从的Java对象生成JSON字符串,格式如下。我该怎么做

{“TOTAL”:1,“CURRENTPAGE”:1,“TOTALRECORDS”:6,“ROWS”:[{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4}{“pagename”:“调用的getter方法:调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4}]}

如果我真的喜欢下面的东西,那么它不工作,给我错误的输出

    Tblselectablecolumnjqgrid selCol = new Tblselectablecolumnjqgrid();
    selCol.setPageid(4);
    selCol.setPagename("Test");
    selCol.setPagestatus("Test Status");

    selList.add(selCol);
    selList.add(selCol.clone());
    selList.add(selCol.clone());
    selList.add(selCol.clone());

    ObjectMapper om = new ObjectMapper();

    String writeValueAsString = om.writeValueAsString(selList);

    System.out.println("Result:    " + writeValueAsString);

    JsonFactory jsf = new JsonFactory();

    JsonTreeWriter tree = new JsonTreeWriter();
它给我以下输出

[{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:调用getter方法:调用getter方法:Test,“pagestatus”:“teststatus”,“id”:4}]

我应该对代码进行哪些更改以获得所需的输出

我的POJO课 主方法类
package.com.jackson;
导入java.io.IOException;
导入java.util.ArrayList;
导入org.codehaus.jackson.jsongGenerationException;
导入org.codehaus.jackson.map.JsonMappingException;
导入org.codehaus.jackson.map.ObjectMapper;
导入com.pojo.Tblselectablecolumnjqgrid;
公共类JacksonParser{
公共静态void main(字符串args[])抛出JsonGenerationException,
JsonMappingException、IOException、CloneNotSupportedException{
ArrayList selList=新的ArrayList();
Tblselectablecolumnjqgrid selCol=新Tblselectablecolumnjqgrid();
selCol.setPageid(4);
selCol.setPagename(“测试”);
选择设置页面状态(“测试状态”);
selList.add(selCol);
selList.add(selCol.clone());
selList.add(selCol.clone());
selList.add(selCol.clone());
ObjectMapper om=新的ObjectMapper();
字符串writeValueAsString=om.writeValueAsString(selList);
System.out.println(“结果:+writeValueAsString”);
}
}
预期产量 {“TOTAL”:1,“CURRENTPAGE”:1,“TOTALRECORDS”:6,“ROWS”:[{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{”pagename:“调用的getter方法:调用的getter方法:测试”,“pagestatus:“测试状态”,“id”:4}]}

输出获取 [{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:“调用的getter方法:测试”,“pagestatus”:“测试状态”,“id”:4},{“pagename”:调用getter方法:调用getter方法:Test,“pagestatus”:“teststatus”,“id”:4}]

编写一个类似

public class Wrapper {
  private int TOTAL;
  private int CURRENTPAGE;
  private int TOTALRECORDS;
  private List<Row> ROWS;

  //getters setters

}

public class Row {
  private String pagename;
  private String pagestatus;
  private int id;

  //getters setters
}

解析中的错误是什么?也尝试添加类详细信息,但不清楚指定问题陈述。类Tblselectablecolumnjqgrid的内容是什么?编写一个简单的主程序来定义真正的问题。我这样说是因为您可能需要向bean添加一些注释,以使Jackson理解它们。编辑了我的再次提问,请参考编辑部分。有不止一个错误…最基本的错误是您正在解析列表以便获得数组。pojo是您应该解析的。您想要在JSON字符串中解析的pojo的
TOTAL
属性在哪里?
“TOTAL”:1,“CURRENTPAGE”:1,“TOTALRECORDS”“:6
将不属于POJO clas的一部分。只有行是POJO类的一部分。那么我如何自动生成该bean的值呢?谢谢,巴迪,我得到了答案:)
package com.jackson;

import java.io.IOException;
import java.util.ArrayList;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

import com.pojo.Tblselectablecolumnjqgrid;

public class JacksonParser {

    public static void main(String args[]) throws JsonGenerationException,
            JsonMappingException, IOException, CloneNotSupportedException {

        ArrayList<Tblselectablecolumnjqgrid> selList = new ArrayList<Tblselectablecolumnjqgrid>();

        Tblselectablecolumnjqgrid selCol = new Tblselectablecolumnjqgrid();
        selCol.setPageid(4);
        selCol.setPagename("Test");
        selCol.setPagestatus("Test Status");

        selList.add(selCol);
        selList.add(selCol.clone());
        selList.add(selCol.clone());
        selList.add(selCol.clone());

        ObjectMapper om = new ObjectMapper();

        String writeValueAsString = om.writeValueAsString(selList);
        System.out.println("Result:    " + writeValueAsString);
    }
}
public class Wrapper {
  private int TOTAL;
  private int CURRENTPAGE;
  private int TOTALRECORDS;
  private List<Row> ROWS;

  //getters setters

}

public class Row {
  private String pagename;
  private String pagestatus;
  private int id;

  //getters setters
}
//populate Wrapper
Wrapper wrap = new Wrapper();
//set attributes and Rows
...
String writeValueAsString = om.writeValueAsString(wrap);