JSON-Jackson-ObjectMapper ReadValue - Fehler in Datum konvertieren

Ich sehe die Fehler unten aufgelistet, wenn Sie versuchen zu konvertieren der json-string in ein Objekt. Ich habe nicht den source code für die Daten-Klasse & es ist Teil einer jar-Datei. Gibt es eine Möglichkeit, die ich verwenden könnte Mixins in Verbindung, um dieses Problem?

CODE

ObjectMapper mapper = new ObjectMapper();
mapper.readValue(request, Data.class);

FEHLER

org.codehaus.jackson.Karte.JsonMappingException: Kann nicht bauen
Instanz von javax.xml.datatype.XMLGregorianCalendar von String-Wert
'10:00:00': keine gültige Darstellung (error: Can not parse date
"10:00:00": nicht kompatibel mit der standard-Formulare
("yyyy-MM-dd NICHT'HH:mm:ss.SSSZ", "yyyy-MM-dd NICHT'HH:mm:ss.SSS 'Z'", "EEE,
dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))

JSON-ANFRAGE

 "timeSlot":{  
       "date":"2015-10-21",
       "endTime":"10:00:00",
       "startTime":"08:00:00",   
 }

BEARBEITEN

Dieses Problem ist ähnlich diese , aber dies geschieht während der Deserialisierung. Die andere Lösung half in entsprechend serialisieren der Anfrage.

Habe ich eingefügt den sample-code, der nicht unter Arbeitsbedingungen -

import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class TestJSONDeserialize {

    public static void main(String[] args){

        ObjectMapper mapper = new ObjectMapper();
        mapper.addMixIn(Data.class, MyMixin.class);

        String jsonString = "{\"date\":\"2014-02-10\",\"time\":\"16:15:00\"}";
        try {
            mapper.readValue(jsonString, Data.class);
        } catch (JsonParseException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


}

Daten Klasse (ich kann keine änderungen an dieser Datei)

import javax.xml.datatype.XMLGregorianCalendar;

public class Data {

    private XMLGregorianCalendar date;
    private XMLGregorianCalendar time;

    public XMLGregorianCalendar getDate() {
        return date;
    }
    public void setDate(XMLGregorianCalendar date) {
        this.date = date;
    }
    public XMLGregorianCalendar getTime() {
        return time;
    }
    public void setTime(XMLGregorianCalendar time) {
        this.time = time;
    }



}

Sehe ich die folgende Fehlermeldung, wenn ich dies ausführen :

com.fasterxml.jackson.databind-Methode.exc.InvalidFormatException: Kann nicht
konstruieren Instanz von javax.xml.datatype.XMLGregorianCalendar aus
String-Wert '16:15:00': keine gültige Darstellung (error: Failed to
parse-Date-Wert '16:15:00': Kann nicht analysiert Datum "16:15:00": nicht
kompatibel mit allen standard-Formen ("yyyy-MM-dd NICHT'HH:mm:ss.SSSZ",
"yyyy-MM-dd NICHT'HH:mm:ss.SSS 'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz",
"yyyy-MM-dd")) [Source: {"Datum":"2014-02-10","Zeit":"16:15:00"};
Zeile: 1, Spalte: 21] (über die Referenz-Kette:
com.comcast.json.test.Daten["Zeit"])

InformationsquelleAutor Punter Vicky | 2015-10-13

Schreibe einen Kommentar