diff --git a/api/src/main/java/com/theokanning/openai/utils/JsonUtil.java b/api/src/main/java/com/theokanning/openai/utils/JsonUtil.java index 3ef2d5a..1c191fd 100644 --- a/api/src/main/java/com/theokanning/openai/utils/JsonUtil.java +++ b/api/src/main/java/com/theokanning/openai/utils/JsonUtil.java @@ -1,22 +1,25 @@ package com.theokanning.openai.utils; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; /** * @author LiangTao * @date 2024年05月24 15:02 **/ public class JsonUtil { - private static final ObjectMapper mapper = ObjectMapperHolder.mapper; + private static final ObjectMapper MAPPER = ObjectMapperHolder.MAPPER; public static ObjectMapper getInstance() { - return mapper; + return MAPPER; } public static String writeValueAsString(Object value) { try { - return mapper.writeValueAsString(value); + return MAPPER.writeValueAsString(value); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -24,14 +27,19 @@ public static String writeValueAsString(Object value) { public static T readValue(String content, Class valueType) { try { - return mapper.readValue(content, valueType); + return MAPPER.readValue(content, valueType); } catch (JsonProcessingException e) { throw new RuntimeException(e); } } private static class ObjectMapperHolder { - private static final ObjectMapper mapper = new ObjectMapper(); + private static final ObjectMapper MAPPER = new ObjectMapper(); + static { + MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); + MAPPER.setPropertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE); + } }