Jackson学习
转载:https://www.cnblogs.com/yangchongxing/p/9153150.html
1、object转json、json转object,object和json的字段名称相同
package com.qq.weixin.mp.result; import com.fasterxml.jackson.databind.ObjectMapper; public class AccessTokenResult { private String accessToken; private long expiresIn; public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.accessToken = accessToken; } public long getExpiresIn() { return expiresIn; } public void setExpiresIn(long expiresIn) { this.expiresIn = expiresIn; } @Override public String toString() { return "AccessTokenResult [accessToken=" + accessToken + ", expiresIn=" + expiresIn + "]"; } public static void main(String[] args) { AccessTokenResult bean = new AccessTokenResult(); bean.setAccessToken("2r5fx9eiyapFxEGgHq"); bean.setExpiresIn(7200); try { ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(bean);//object转json System.out.println(json); AccessTokenResult object = mapper.readValue(json, AccessTokenResult.class);//json转object System.out.println(object); } catch (Exception e) { e.printStackTrace(); } } }
结果
{"accessToken":"2r5fx9eiyapFxEGgHq","expiresIn":7200}
AccessTokenResult [accessToken=2r5fx9eiyapFxEGgHq, expiresIn=7200]
2、object和json的字段名称不相同
package com.qq.weixin.mp.result; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; public class AccessTokenResult { private String accessToken; private long expiresIn; @JsonProperty(value="access_token") public String getAccessToken() { return accessToken; } @JsonProperty(value="access_token") public void setAccessToken(String accessToken) { this.accessToken = accessToken; } @JsonProperty(value="expires_in") public long getExpiresIn() { return expiresIn; } @JsonProperty(value="expires_in") public void setExpiresIn(long expiresIn) { this.expiresIn = expiresIn; } @Override public String toString() { return "AccessTokenResult [accessToken=" + accessToken + ", expiresIn=" + expiresIn + "]"; } public static void main(String[] args) { AccessTokenResult bean = new AccessTokenResult(); bean.setAccessToken("2r5fx9eiyapFxEGgHq"); bean.setExpiresIn(7200); try { ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(bean);//object转json System.out.println(json); AccessTokenResult object = mapper.readValue(json, AccessTokenResult.class);//json转object System.out.println(object); } catch (Exception e) { e.printStackTrace(); } } }
结果
{"access_token":"2r5fx9eiyapFxEGgHq","expires_in":7200}
AccessTokenResult [accessToken=2r5fx9eiyapFxEGgHq, expiresIn=7200]
@JsonProperty注解,作用在get方法将属性名序列化为指定的名称,作用在set方法将指定名称反序列化到属性