From b21fb4c288c98971f9859cf5d85cef4c86e131bb Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期五, 08 十二月 2023 14:46:21 +0800
Subject: [PATCH] 12.8
---
cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 156 insertions(+), 0 deletions(-)
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java b/cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java
new file mode 100644
index 0000000..b2cdfeb
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java
@@ -0,0 +1,156 @@
+package com.dsh.activity.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 返回json数据封装工具类
+ *
+ * @ClassName: JsonUtil
+ * @author: yuds
+ * @date: 2019-09-20 09:19:27
+ * @version: V1.0.0
+ */
+public class JsonUtil {
+
+ /**
+ * <li>将对象转化为json输出
+ * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true
+ * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false
+ * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null
+ * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null
+ * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null
+ * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null
+ * <li>DisableCircularReferenceDetect 禁止循环引用检测
+ */
+ private static SerializerFeature[] serializerFeaturess = {SerializerFeature.WriteMapNullValue,
+ SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty,
+ SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse,
+ SerializerFeature.DisableCircularReferenceDetect,};
+
+ private JsonUtil() {
+
+ }
+
+ /**
+ * fastJson Object转json
+ *
+ * @param obj
+ * @return
+ */
+ public static String objToJson(Object obj) {
+ return JSON.toJSONString(obj, serializerFeaturess);
+ }
+
+ /**
+ * fastJson Object转json
+ *
+ * @param obj
+ * @param dateFormat 时间格式化
+ * @return
+ */
+ public static String objToJson(Object obj, String dateFormat) {
+ return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess);
+ }
+
+ // 定义jackson对象
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+
+ /**
+ * 将对象转换成json字符串。
+ * <p>
+ * Title: pojoToJson
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param data
+ * @return
+ */
+ public static String objectToJson(Object data) {
+ try {
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ MAPPER.setDateFormat(fmt);
+ String string = MAPPER.writeValueAsString(data);
+ return string;
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 将json结果集转化为对象
+ *
+ * @param jsonData json数据
+ * @param beanType 对象中的object类型
+ * @return
+ */
+ public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
+ try {
+ T t = MAPPER.readValue(jsonData, beanType);
+ return t;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 将json数据转换成pojo对象list
+ * <p>
+ * Title: jsonToList
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param jsonData
+ * @param beanType
+ * @return
+ */
+ public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
+ JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
+ try {
+ List<T> list = MAPPER.readValue(jsonData, javaType);
+ return list;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static JsonNode jsonToNode(String jsonData) {
+ try {
+ return MAPPER.readTree(jsonData);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return null;
+ }
+
+ public static Map<String, String> jsonToMap(String json) {
+ JsonNode nodes = jsonToNode(json);
+ Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields();
+ Map<String, String> map = new HashMap<>();
+ while (fields.hasNext()) {
+ Map.Entry<String, JsonNode> next = fields.next();
+ String value = next.getValue().asText("");
+ map.put(next.getKey(), value);
+ }
+ return map;
+ }
+
+}
--
Gitblit v1.7.1