常用工具(七) --JSONUtils
阿新 • • 發佈:2020-12-25
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com. fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class JSONUtils {
private static ObjectMapper objectMapper = null;
static {
objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.setFilterProvider(new SimpleFilterProvider().setFailOnUnknownId(false));
//忽略NULL值
objectMapper. setDefaultPropertyInclusion(
JsonInclude.Value.construct(JsonInclude.Include.ALWAYS, JsonInclude.Include.NON_NULL));
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
}
public static String writeValueAsString(Object obj) throws JsonProcessingException {
return objectMapper.writeValueAsString(obj);
}
public static void write(File file, Object obj) throws IOException {
objectMapper.writeValue(file, obj);
}
public static <T> T parse(File file, Class<T> clazz) throws IOException {
if (!file.exists() || file.isDirectory()) {
return null;
}
return objectMapper.readValue(file, clazz);
}
public static <T> T parse(String json, Class<T> clazz) throws IOException {
return objectMapper.readValue(json, clazz);
}
public static <E> List<E> parseList(String json, Class<E> clazz) throws Exception {
JavaType type = objectMapper.getTypeFactory().constructCollectionType(List.class, clazz);
return objectMapper.readValue(json, type);
}
}