मैं चाहता हूं कि मेरे LocalDateTime को मेरे स्प्रिंग रेस्ट कंट्रोलर्स से ISO-8601 स्ट्रिंग्स (जैसे "2020-10-12T10:57:15Z") के रूप में लौटाया जाए। यह पहले काम कर चुका है, लेकिन अब जब मैं एक कस्टम जैक्सन 2 ObjectMapper का उपयोग कर रहा हूं, तो इन तिथियों को इसके बजाय सरणियों के रूप में लौटाया जा रहा है: [2020, 10, 12, 10, 57, 15, 200000000]

ऐसा क्यों हो रहा है और मैं ObjectMapper को ISO-8601 तिथियां लौटाते हुए कैसे अनुकूलित कर सकता हूं?

-1
darksmurf 19 अक्टूबर 2020, 13:51

1 उत्तर

सबसे बढ़िया उत्तर

JacksonAutoConfiguration एक ObjectMapper बनाता है जिसमें WRITE_DATES_AS_TIMESTAMPS सुविधा बंद है, जो LocalDateTimes को ISO-8601 स्ट्रिंग्स के रूप में लौटाता है। जब आप एक कस्टम ObjectMapper प्रदान करते हैं तो यह डिफ़ॉल्ट ऑटो-कॉन्फ़िगरेशन बंद हो जाता है।

इसे एक कस्टम ObjectMapper प्रदान करने के बजाय, Jackson2ObjectMapperBuilderCustomizer प्रदान करके हल किया जा सकता है। WRITE_DATES_AS_TIMESTAMPS सुविधा को बंद करने जैसे ऑटो-कॉन्फ़िगर किए गए व्यवहार को बनाए रखते हुए JacksonAutoConfiguration द्वारा ObjectMapper को अनुकूलित करने के लिए इस बीन का उपयोग किया जाएगा।

@Configuration
public class Config {
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer objectMapperBuilderCustomizer() {
        return jacksonObjectMapperBuilder -> {
            // Customize the ObjectMapper while maintaining the auto-configuration
        };
    }
}
0
darksmurf 19 अक्टूबर 2020, 13:51