liusheng
2026-03-13 2359f47c2f89a9867e72aa9b171cb118b874afec
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
@@ -1,6 +1,13 @@
package com.ruoyi.framework.config;
import java.io.IOException;
import java.util.TimeZone;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -25,6 +32,18 @@
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
    {
        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
        return jacksonObjectMapperBuilder -> {
            jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
            // 支持将 JSON 对象反序列化为 fastjson JSONObject
            SimpleModule module = new SimpleModule();
            module.addDeserializer(JSONObject.class, new JsonDeserializer<JSONObject>() {
                @Override
                public JSONObject deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
                    JsonNode node = p.getCodec().readTree(p);
                    return JSONObject.parseObject(node.toString());
                }
            });
            jacksonObjectMapperBuilder.modules(module);
        };
    }
}