perf: 调整jackson依赖,引入json处理

dev
huangfeng 1 year ago
parent 88dd323aab
commit 386074e878

@ -16,6 +16,7 @@
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<jackson.version>2.16.2</jackson.version>
</properties> </properties>
<dependencies> <dependencies>
@ -40,6 +41,42 @@
<version>2.5.6</version> <version>2.5.6</version>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.shxy</groupId> <groupId>com.shxy</groupId>
<artifactId>xymanager_framework</artifactId> <artifactId>xymanager_framework</artifactId>

@ -0,0 +1,87 @@
package com.shxy.xymanager_common.util;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
import java.io.File;
import java.io.IOException;
import java.util.Map;
public class JSONProcessor {
public Map<String, Object> fromJSON2Map(String json) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
@SuppressWarnings("unchecked")
Map<String, Object> productMap = mapper.readValue(json, Map.class);
return productMap;
}
public Map<String, Object> fromJSON2Map(Object obj) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
@SuppressWarnings("unchecked")
Map<String, Object> productMap = mapper.convertValue(obj, Map.class);
return productMap;
}
public String buildJSONFromJSONObject(Object obj) {
String jsonInString = null;
ObjectMapper mapper = new ObjectMapper();
try {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.setSerializationInclusion(Include.NON_NULL);
jsonInString = mapper.writeValueAsString(obj);
} catch (Exception e) {
// LOG.error("JSON transform failed. ", e);
}
return jsonInString;
}
public String buildJSONFromJSONObject(Object obj, boolean prettyPrinter) {
String jsonInString = null;
ObjectMapper mapper = new ObjectMapper();
try {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.setSerializationInclusion(Include.NON_NULL);
if (prettyPrinter) {
jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
} else {
jsonInString = mapper.writeValueAsString(obj);
}
} catch (Exception e) {
// LOG.error("JSON transform failed. ", e);
}
return jsonInString;
}
public <T> T buildJSONObjectFromJSON(String json, Class<T> clazz) throws Exception {
ObjectMapper mapper = new ObjectMapper();
try {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return mapper.readValue(json, clazz);
} catch (UnrecognizedPropertyException e) {
throw new Exception(e.getPropertyName(), e);
} catch (Exception e) {
throw new Exception("JSON Object transform failed. ", e);
}
}
public <T> T buildJSONObjectFromJSON(File file, Class<T> clazz) throws Exception {
ObjectMapper mapper = new ObjectMapper();
try {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return mapper.readValue(file, clazz);
} catch (UnrecognizedPropertyException e) {
throw new Exception(e.getPropertyName(), e);
} catch (Exception e) {
throw new Exception("JSON Object transform failed. ", e);
}
}
}

@ -0,0 +1,47 @@
/**
* @author roger - Sep 9, 2016
* @version 2.0
* file name: JSONProcessor.java
* package name: com.roam2free.rest.util
*/
package com.shxy.xymanager_common.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.io.File;
import java.io.IOException;
import java.util.Map;
public class JSONUtil {
private static JSONProcessor jSONProcessor = new JSONProcessor();
public static String object2Json(Object obj) {
return jSONProcessor.buildJSONFromJSONObject(obj);
}
public static String object2Json(Object obj, boolean prettyPrinter) {
return jSONProcessor.buildJSONFromJSONObject(obj, prettyPrinter);
}
public static <T> T json2Object(String json, Class<T> clazz) throws Exception {
return jSONProcessor.buildJSONObjectFromJSON(json, clazz);
}
public static <T> T file2Object(File file, Class<T> clazz) throws Exception {
return jSONProcessor.buildJSONObjectFromJSON(file, clazz);
}
public static Map<String, Object> object2Map(Object obj) {
try {
return jSONProcessor.fromJSON2Map(obj);
} catch (IOException e) {
return null;
}
}
}
Loading…
Cancel
Save