From e9f44dd851a8f0bf18c00e3e5c53a8f8de9a6b66 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 25 Jul 2025 12:21:24 +0800
Subject: [PATCH] JacksonUtil
---
pom.xml | 14 +
.../com/ycwl/basic/utils/JacksonUtil.java | 277 ++++++++++++++++++
2 files changed, 291 insertions(+)
create mode 100644 src/main/java/com/ycwl/basic/utils/JacksonUtil.java
diff --git a/pom.xml b/pom.xml
index 641de13..c68ebd1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,6 +129,20 @@
${fastjson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
org.apache.commons
diff --git a/src/main/java/com/ycwl/basic/utils/JacksonUtil.java b/src/main/java/com/ycwl/basic/utils/JacksonUtil.java
new file mode 100644
index 0000000..4d0d65c
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/utils/JacksonUtil.java
@@ -0,0 +1,277 @@
+package com.ycwl.basic.utils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.CollectionType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Jackson JSON工具类
+ * 提供简单易用的JSON序列化和反序列化功能
+ */
+public class JacksonUtil {
+
+ private static final ObjectMapper objectMapper = new ObjectMapper();
+
+ /**
+ * 对象转JSON字符串
+ * @param obj 要转换的对象
+ * @return JSON字符串
+ */
+ public static String toJson(Object obj) {
+ try {
+ return objectMapper.writeValueAsString(obj);
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException("对象转JSON失败", e);
+ }
+ }
+
+ /**
+ * JSON字符串转对象
+ * @param json JSON字符串
+ * @param clazz 目标类型
+ * @param 泛型类型
+ * @return 转换后的对象
+ */
+ public static T fromJson(String json, Class clazz) {
+ try {
+ return objectMapper.readValue(json, clazz);
+ } catch (IOException e) {
+ throw new RuntimeException("JSON转对象失败", e);
+ }
+ }
+
+ /**
+ * JSON字符串转对象(支持复杂类型)
+ * @param json JSON字符串
+ * @param typeReference 类型引用
+ * @param 泛型类型
+ * @return 转换后的对象
+ */
+ public static T fromJson(String json, TypeReference typeReference) {
+ try {
+ return objectMapper.readValue(json, typeReference);
+ } catch (IOException e) {
+ throw new RuntimeException("JSON转对象失败", e);
+ }
+ }
+
+ /**
+ * JSON字符串转List
+ * @param json JSON字符串
+ * @param elementClass 列表元素类型
+ * @param 泛型类型
+ * @return List对象
+ */
+ public static List fromJsonToList(String json, Class elementClass) {
+ try {
+ TypeFactory typeFactory = objectMapper.getTypeFactory();
+ CollectionType listType = typeFactory.constructCollectionType(List.class, elementClass);
+ return objectMapper.readValue(json, listType);
+ } catch (IOException e) {
+ throw new RuntimeException("JSON转List失败", e);
+ }
+ }
+
+ /**
+ * JSON字符串转Map
+ * @param json JSON字符串
+ * @return Map对象
+ */
+ public static Map fromJsonToMap(String json) {
+ try {
+ return objectMapper.readValue(json, new TypeReference