1.2.5 JsonUtil 支持Map泛型转换

This commit is contained in:
maxf 2018-12-20 13:14:01 +08:00
parent f2e8bc624b
commit cb78538c01
4 changed files with 62 additions and 8 deletions

View File

@ -17,7 +17,7 @@
### 使用
>yexuejc.base.version=1.2.4
>yexuejc.base.version=1.2.5
pom.xml
```

View File

@ -1,6 +1,13 @@
yexuejc-base 更新记录
------------------
#### version 1.2.5
**time2018-12-20 13:13:23** <br/>
**branch** master <br/>
**update** <br/>
>1. 丰富[JsonUtil](src/main/java/com/yexuejc/base/util/JsonUtil.java),支持直接对Map泛型转换
#
#### version 1.2.4
**time2018-11-27 14:46:04** <br/>
**branch** master <br/>

View File

@ -6,7 +6,7 @@
<groupId>com.yexuejc.base</groupId>
<artifactId>yexuejc-base</artifactId>
<version>1.2.4</version>
<version>1.2.5</version>
<name>${project.artifactId}</name>

View File

@ -5,9 +5,11 @@ import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.type.MapType;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
/**
* json工具类基于jackson
@ -95,12 +97,13 @@ public class JsonUtil {
return pojo;
}
/**
* Json字符串转换为Java对象
*
* @param json
* @param parametrized
* @param parameterClasses
* @param json 字符串
* @param parametrized 容器类
* @param parameterClasses 实际类
* @return
*/
public static <T> T json2Obj(String json, Class<T> parametrized, Class<?>... parameterClasses) {
@ -116,12 +119,56 @@ public class JsonUtil {
return pojo;
}
/**
* Json字符串转换为Java-Map对象
*
* @param json 字符串
* @param mapClass Map 继承类
* @param keyClass Key
* @param valueClass Value
* @param <T>
* @return
*/
public static <T> T json2Obj(String json, Class<? extends Map> mapClass, Class<?> keyClass, Class<?> valueClass) {
T pojo = null;
MapType mapType = objectMapper.getTypeFactory().constructMapType(mapClass, keyClass, valueClass);
try {
pojo = objectMapper.readValue(json, mapType);
} catch (JsonParseException e) {
} catch (JsonMappingException e) {
} catch (IOException e) {
}
return pojo;
}
/**
* Json字符串转换为Java-Map对象
*
* @param json 字符串
* @param mapClass Map 继承类
* @param keyType Key
* @param valueType Value
* @param <T>
* @return
*/
public static <T> T json2Obj(String json, Class<? extends Map> mapClass, JavaType keyType, JavaType valueType) {
T pojo = null;
MapType mapType = objectMapper.getTypeFactory().constructMapType(mapClass, keyType, valueType);
try {
pojo = objectMapper.readValue(json, mapType);
} catch (JsonParseException e) {
} catch (JsonMappingException e) {
} catch (IOException e) {
}
return pojo;
}
/**
* Json字符串转换为Java对象
*
* @param json
* @param parametrized
* @param parameterClasses
* @param json 字符串
* @param parametrized 容器类
* @param parameterClasses 实际类
* @return
*/
public static <T> T json2Obj(InputStream json, Class<T> parametrized, Class<?>... parameterClasses) {