From cb78538c01ac13aa9b4b5b9969cf3ceb4adba73c Mon Sep 17 00:00:00 2001 From: maxf <1107047387@qq.com> Date: Thu, 20 Dec 2018 13:14:01 +0800 Subject: [PATCH] =?UTF-8?q?1.2.5=20JsonUtil=20=E6=94=AF=E6=8C=81Map?= =?UTF-8?q?=E6=B3=9B=E5=9E=8B=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- UPDATE.md | 7 +++ pom.xml | 2 +- .../java/com/yexuejc/base/util/JsonUtil.java | 59 +++++++++++++++++-- 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c6f19de..66a87b2 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ### 使用 ->yexuejc.base.version=1.2.4 +>yexuejc.base.version=1.2.5 pom.xml ``` diff --git a/UPDATE.md b/UPDATE.md index 7b34301..3d98d3b 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,6 +1,13 @@ yexuejc-base 更新记录 ------------------ +#### version :1.2.5 +**time:2018-12-20 13:13:23**
+**branch:** master
+**update:**
+>1. 丰富[JsonUtil](src/main/java/com/yexuejc/base/util/JsonUtil.java),支持直接对Map泛型转换 + +# #### version :1.2.4 **time:2018-11-27 14:46:04**
**branch:** master
diff --git a/pom.xml b/pom.xml index 9e7e257..1ac8939 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.yexuejc.base yexuejc-base - 1.2.4 + 1.2.5 ${project.artifactId} diff --git a/src/main/java/com/yexuejc/base/util/JsonUtil.java b/src/main/java/com/yexuejc/base/util/JsonUtil.java index 5ca30e9..479288b 100644 --- a/src/main/java/com/yexuejc/base/util/JsonUtil.java +++ b/src/main/java/com/yexuejc/base/util/JsonUtil.java @@ -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 json2Obj(String json, Class 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 + * @return + */ + public static T json2Obj(String json, Class 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 + * @return + */ + public static T json2Obj(String json, Class 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 json2Obj(InputStream json, Class parametrized, Class... parameterClasses) {