Jackson学习

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方法将指定名称反序列化到属性

猜你喜欢

转载自www.cnblogs.com/yangchongxing/p/9153150.html