说明
本文介绍,使用 ObjectMapper 类将POJO对象序列化成JSON字符串
将java对象转成json
注意
javabean至少有一个成员变量有 getter 方法,如果没有成员变量,或者没有 getter 方法,会 报错如下:
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class vo.JsonResult and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )
javabean
public class JsonResult {
private int code;
private String msg;
public JsonResult(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
转换代码
JsonResult result=new JsonResult();
result.setCode(10000);
result.setMsg("请登录!");
ObjectMapper om=new ObjectMapper();
String json=om.writeValueAsString(result);
List转换json
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(list);
System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
执行结果:
[1,2,3]
Map转成json
Map<String, String> map = new HashMap<>();
map.put("username", "root");
map.put("password", "123456");
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(map);
System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
执行结果:
{"password":"123456","username":"root"}
List 中 有Map,转成 json
Map map1=new HashMap();
map1.put("name","root");
map1.put("pwd","123456");
Map map2=new HashMap();
map2.put("name","user");
map2.put("pwd","user");
List list = new ArrayList();
list.add(map1);
list.add(map2);
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(list);
System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
执行结果:
[{"name":"root","pwd":"123456"},{"name":"user","pwd":"user"}]