Java 从Jackson解析器生成JSON
我正在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}]} 如果我真的喜欢下面的东西,那么它不工作,给我错误的输出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
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);