Jackson详解一

来源:互联网 发布:黎活明 知乎 编辑:程序博客网 时间:2024/06/05 05:22

1.@JsonPropertyOrder

@JsonPropertyOrder(value ={“name”,”id”,”json”})
作用:改变json序列化后的输出顺序

@JsonPropertyOrder(value ={"name","id","json"})public class MyBean {    @JsonProperty("id")    private int id;    @JsonProperty("name")    private String name;    @JsonRawValue    private String json;    public MyBean(int id, String name, String json) {        this.id = id;        this.name = name;        this.json = json;    }}public static void main(String[] args) throws JsonProcessingException{        MyBean myBean = new MyBean(1,"zz","{'attr':false}");        String result = new ObjectMapper().writeValueAsString(myBean);        System.out.println(result);}

结果:

{"name":"zz","id":1,"json":{'attr':false}}

2.@JsonRawValue

作用:把json字符串序列化成json,代码如上。

3.@JsonValue

作用:输出指定枚举的值

public enum BeanEnum {    TYPE1(1,"Type A"),TYPE2(2,"Type B");    private Integer id;    private String name;    private BeanEnum(Integer id, String name) {        this.id = id;        this.name = name;    }    @JsonValue    public String getName(){        return name;    }}public static void main(String[] args) throws JsonProcessingException{        String result = new ObjectMapper().writeValueAsString(BeanEnum.TYPE1);        System.out.println(result);}

结果

  "Type A"

4.@JsonRootName

作用:序列化后的json添加根名

@jsonRootName(value="user")public class User{    public int id;    public String name;}

结果:

{    "user"{        "id":1.        "name":"zz"    }}
原创粉丝点击