Jackson 库中@JsonProperty和@JsonAlias注解实现序列化反序列化
Json序列化一般为实体转化生成的 JSON 数据中直接包含嵌套对象的属性
ObjectMapper mapper = new ObjectMapper();
Book book = new Book("Learning Java", "Java");
Writer writer = new Writer(110, "Mohit", book);
String jsonWriter = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(writer);
Json反序列化一般为JSON 数据映射到外层实体对象javabean的属性上
String jsonData = "{" +"\"writerId\" : 111," +"\"mywname\" : \"Mahesh\"," +"\"writerBook\" : {" +"\"bookName\" : \"Learning Spring\"," +"\"bkcat\" : \"Spring\"" +"}" +"}";
ObjectMapper mapper = new ObjectMapper();
Writer writer = mapper.readValue(jsonData, Writer.class);
@JsonProperty是用于定义逻辑属性的标记注释。一般被用于JSON的序列化和反序列化。
@JsonAlias为反序列化期间接受的属性定义一个或多个别名,即将JSON数据设置为Java对象。但是在序列化时,即从Java对象获取JSON时,只使用实际的逻辑属性名而不是别名。
@JsonDeserialize ;JSON字符串转JavaBean反序列化时, 将其他类型字段转化为BigDecimal类型
@JsonAlias({"passengerName", "newName"})
private String name;
@JsonProperty("type")
private String specification;
@JsonProperty("count")
@JsonDeserialize(using = BigDecimalDeSerialize.class)
private Bigdicimal amount;
本文作者:chillymint
本文链接:https://www.cnblogs.com/chillymint/p/18202679
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步