[Java] "T" ist in der API-Antwort im Datumstyp JSON enthalten

Beim Erstellen einer Web-API in Java wird der Datumstyp, z. B. der LocalDateTime-Typ, in der Antwort angezeigt.

2019-01-01T01:00:00

Lösung, wenn es so wird

Lösungen

--Erstellen Sie einen Serialisierungsadapter --Erstellen Sie package-info.java im Paket mit dem Antwortmodell und laden Sie den erstellten Adapter

Beispiel in JAXB

Erstellen Sie einen Adapter

LocalDateAdapter.java


package api.adapters;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
	@Override
	public LocalDate unmarshal(String s) throws Exception {

		if (s == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		LocalDate dateTime = LocalDate.parse(s, formatter);
		return dateTime;
	}

	@Override
	public String marshal(LocalDate d) throws Exception {
		if (d == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		String formattedDateTime = d.format(formatter);
		return formattedDateTime;
	}
}

LocalDateTimeAdapter.java


package api.adapters;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
	@Override
	public LocalDateTime unmarshal(String s) throws Exception {

		if (s == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		LocalDateTime dateTime = LocalDateTime.parse(s, formatter);
		return dateTime;
	}

	@Override
	public String marshal(LocalDateTime d) throws Exception {
		if (d == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		String formattedDateTime = d.format(formatter);
		return formattedDateTime;
	}
}

Lesen Sie mit Paket-Info

package-info.java


//Kommentieren Sie den Adapter
@XmlJavaTypeAdapters(value = { @XmlJavaTypeAdapter(value = LocalDateTimeAdapter.class, type = java.time.LocalDateTime.class),
@XmlJavaTypeAdapter(value = LocalDateAdapter.class, type = java.time.LocalDate.class) })
package api.model.response;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;

//Adapter importieren
import api.adapters.LocalDateAdapter;
import api.adapters.LocalDateTimeAdapter;

Recommended Posts

[Java] "T" ist in der API-Antwort im Datumstyp JSON enthalten
Studieren Sie Java 8 (Datums-API im Paket java.time)
Versuchen Sie es mit der JSON-Format-API in Java
Der in Java 10 eingeführte Schnittpunkttyp ist erstaunlich (?)
Lesen Sie JSON in Java
Packen Sie die API-Antwort (Java)
Typbestimmung in Java
Zabbix API in Java
POST JSON in Java
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
[Java] Konvertierung des Datumstyps
Probieren Sie den Funktionstyp in Java aus! ①
Unterschiede im enthaltenen SDK (Jar) von Java 8 Typ JDK Vender
Java Stream API in 5 Minuten
POST Json in Java ~ HttpURLConnection ~
Json-Serialisierung / Deserialisierung in Java 1.4
Aktuelles Datum in Java anzeigen
Datumsverarbeitung in Java (LocalDate: Initialisierung)
Generieren Sie die CloudStack-API-URL in Java
Treffen Sie Zaims API (OAuth 1.0) in Java
Analysieren der COTOHA-API-Syntaxanalyse in Java
JPA (Java Persistence API) in Eclipse
Was ist eine Klasse in der Java-Sprache (3 /?)
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
[Leicht verständliche Erklärung! ] Konvertierung des Referenztyptyps in Java
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
[Persönliches Memo] Der Java-Datentyp ist ärgerlich
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Ändern Sie die Liste <Optional <T >> in Java in Optional <Liste <T >>
Ausgabedatum in Java im erweiterten ISO 8601-Format
Java 8 startet jetzt ~ Datums- und Uhrzeit-API ~
Was ist die Hauptmethode in Java?
Die Java EE Security API ist da!
So erhalten Sie das Datum mit Java
Behandeln Sie große JSON mit Java Lambda
[Java] Unterschied zwischen gleich und == in einer Zeichenfolge, die ein Referenztyp ist
Informationen zur Bedeutung von Typvariablen, E, T usw., die in in Java verwendeten Generika verwendet werden