Files
yjearth/src/main/java/com/yj/earth/common/util/JsonUtil.java

90 lines
2.4 KiB
Java
Raw Normal View History

2025-09-08 17:01:50 +08:00
package com.yj.earth.common.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
/**
* Map与JSON互相转换工具类
*/
@Slf4j
2025-09-16 17:41:23 +08:00
public class JsonUtil {
2025-09-08 17:01:50 +08:00
private static final ObjectMapper objectMapper = new ObjectMapper();
/**
* Map 转换为 JSON 字符串
*/
public static String mapToJson(Map<String, Object> map) {
if (map == null || map.isEmpty()) {
return "{}";
}
try {
return objectMapper.writeValueAsString(map);
} catch (JsonProcessingException e) {
log.error("Map转JSON失败", e);
return null;
}
}
/**
* JSON 字符串转换为 Map
*/
public static Map<String, Object> jsonToMap(String json) {
if (json == null || json.trim().isEmpty()) {
return new HashMap<>(0);
}
try {
return objectMapper.readValue(json, new TypeReference<Map<String, Object>>() {});
} catch (Exception e) {
log.error("JSON转Map失败、JSON内容: {}", json, e);
return new HashMap<>(0);
}
}
2025-09-22 17:13:22 +08:00
/**
* JSON 字符串转换为指定类型的对象
*/
public static <T> T jsonToObject(String json, Class<T> clazz) {
if (json == null || json.trim().isEmpty()) {
return null;
}
return objectMapper.convertValue(json, clazz);
}
/**
* Map 转换为指定类型的对象
*/
public static <T> T mapToObject(Map<String, Object> map, Class<T> clazz) {
if (map == null || clazz == null) {
return null;
}
try {
// 使用ObjectMapper将Map转换为指定类型对象
return objectMapper.convertValue(map, clazz);
} catch (IllegalArgumentException e) {
log.error("Map转对象失败、目标类型: {}, Map内容: {}", clazz.getName(), map, e);
return null;
}
}
/**
* 将任意 Object 转化为 JSON
*/
public static String toJson(Object obj) {
try {
return objectMapper.writeValueAsString(obj);
} catch (JsonProcessingException e) {
log.error("对象转JSON失败", e);
return null;
}
}
2025-09-08 17:01:50 +08:00
}