本文共 5835 字,大约阅读时间需要 19 分钟。
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
名称 | 链接 | 备注 |
---|---|---|
项目主页 | 该项目在GitHub上的主页 | |
git仓库地址(https) | 该项目源码的仓库地址,https协议 | |
git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |
static class Test { private String field0; private String field1; @JsonValue public String getField0() { return "abc"; } public void setField0(String field0) { this.field0 = field0; } public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } }
static class Test { private String field0; private String field1; public Test(String field0) { this.field0 = field0; } // 通过JsonCreator指定反序列化的时候使用这个构造方法 // 通过JsonProperty指定字段关系 @JsonCreator public Test(@JsonProperty("field0") String field0, @JsonProperty("field1") String field1) { this.field0 = field0; this.field1 = field1; } @Override public String toString() { return "Test{" + "field0='" + field0 + '\'' + ", field1='" + field1 + '\'' + '}'; } }
package com.bolingcavalry.jacksondemo.annotation.methodannotation;import com.fasterxml.jackson.annotation.JsonAnyGetter;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;import java.util.HashMap;import java.util.Map;public class JsonAnySetterSerialization { static class Test { private String field0; private Mapmap; public String getField0() { return field0; } public void setField0(String field0) { this.field0 = field0; } public void setMap(Map map) { this.map = map; } public Map getMap() { return map; } } public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); // 美化输出 mapper.enable(SerializationFeature.INDENT_OUTPUT); // 新增一个HashMap,里面放入两个元素 Map map = new HashMap<>(); map.put("aaa", "value_aaa"); map.put("bbb", "value_bbb"); Test test = new Test(); test.setField0("000"); // map赋值给test.map test.setMap(map); System.out.println(mapper.writeValueAsString(test)); }}
{ "field0" : "000", "map" : { "aaa" : "value_aaa", "bbb" : "value_bbb" }}
{ "field0" : "000", "aaa" : "value_aaa", "bbb" : "value_bbb"}
package com.bolingcavalry.jacksondemo.annotation.methodannotation;import com.fasterxml.jackson.annotation.JsonAnySetter;import com.fasterxml.jackson.annotation.JsonCreator;import com.fasterxml.jackson.annotation.JsonProperty;import com.fasterxml.jackson.databind.ObjectMapper;import java.util.HashMap;import java.util.Map;public class JsonAnySetterDeserialization { static class Test { private String field0; private Mapmap = new HashMap<>(); @JsonAnySetter public void setValue(String key, Object value) { map.put(key, value); } @Override public String toString() { return "Test{" + "field0='" + field0 + '\'' + ", map=" + map + '}'; } } public static void main(String[] args) throws Exception { String jsonStr = "{\n" + " \"field0\" : \"000\",\n" + " \"aaa\" : \"value_aaa\",\n" + " \"bbb\" : \"value_bbb\"\n" + "}"; System.out.println(new ObjectMapper().readValue(jsonStr, Test.class)); }}
Test{field0='null', map={aaa=value_aaa, field0=000, bbb=value_bbb}}
static class Test { private String field0; @JsonAnySetter private Mapmap = new HashMap<>(); @Override public String toString() { return "Test{" + "field0='" + field0 + '\'' + ", map=" + map + '}'; } }
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
转载地址:http://mqtkz.baihongyu.com/