jackson的repository

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>

封装成JsonBuilder

import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonBuilder {

    private ObjectMapper mapper = new ObjectMapper();

    private static JsonBuilder _instance = new JsonBuilder();

    public static JsonBuilder getInstance() {
        return _instance;
    }

    public JsonBuilder() {
        mapper.setSerializationInclusion(Include.NON_NULL);
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
                false);
    }

    public <T> T fromJson(String json, Class<T> typeOfT) {
        if (json == null) {
            throw new IllegalArgumentException("json string should not be null");
        }
        try {
            return mapper.readValue(json, typeOfT);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public String toJson(Object obj) {
        try {
            return mapper.writeValueAsString(obj);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

使用方法

如果不想序列化某个字段在上面加上@JsonIgnore注解接就行了

fromJson的参数:json的String,要转换成的类

toJson的参数:要转换成json的对象