Jackson java对象转成json(ObjectMapper)

说明

本文介绍,使用 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"}]

原文出处:/show_1IX34KzRHypN.html