मैं पहले ही लिंक से गुजर चुका हूं: JSON पार्स त्रुटि: java.time.LocalDate के उदाहरण का निर्माण नहीं कर सकता: स्ट्रिंग मान से deserialize करने के लिए कोई स्ट्रिंग-तर्क निर्माता/फ़ैक्टरी विधि नहीं, लेकिन त्रुटि से नीचे हो रही है।

त्रुटि:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.Instant` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2019-08-28T15:15:44.183Z')

जावा

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class StudentResponse {
    private Integer a;
    private String b;
    private String c;
    private String d;
    private String e;
    private Instant lastUpdateDate;
}
5
Pra_A 28 अगस्त 2019, 15:09

1 उत्तर

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

मैं एक JSON को पार्स करने में सक्षम था जहां Instant फ़ील्ड "2019-08-28T15:15:44.183Z" है

सबसे पहले, सुनिश्चित करें कि आपके पास निर्भरता है। उदा. build.gradle में

implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'

फिर इस निर्भरता का उपयोग करने के लिए ObjectMapper को कॉन्फ़िगर करें और (डी) को Instant को टाइमस्टैम्प के रूप में क्रमबद्ध न करें जो यह डिफ़ॉल्ट रूप से करता है। मैंने अपना ObjectMapper इस प्रकार सेटअप किया है:

ObjectMapper mapper  = new ObjectMapper()
        .findAndRegisterModules()
        .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
7
Manos Nikolaidis 28 अगस्त 2019, 15:51