[Java] "T" est inclus dans le type de date JSON dans la réponse de l'API

Lors de la création d'une API Web en Java, le type de date tel que le type LocalDateTime est affiché dans la réponse.

2019-01-01T01:00:00

Solution si ça devient comme

Solution

--Créer un adaptateur de sérialisation --Créez package-info.java dans le package avec le modèle de réponse et chargez l'adaptateur créé

Exemple en JAXB

Créer un adaptateur

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;
	}
}

Lire avec package-info

package-info.java


//Annoter l'adaptateur
@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;

//Adaptateur d'importation
import api.adapters.LocalDateAdapter;
import api.adapters.LocalDateTimeAdapter;

Recommended Posts

[Java] "T" est inclus dans le type de date JSON dans la réponse de l'API
Étude de Java 8 (API de date dans le package java.time)
Essayez d'utiliser l'API au format JSON en Java
Le type d'intersection introduit dans Java 10 est incroyable (?)
Lire JSON en Java
Emballez la réponse de l'API (java)
Détermination de type en Java
API Zabbix en Java
POST JSON en Java
Créer JSON en Java
Manipulation de la date dans Java 8
[Java] Conversion de type de date
Essayez le type fonctionnel en Java! ①
Différences dans le SDK (Jar) inclus par JDK Vender de type Java 8
API Java Stream en 5 minutes
POST Json en Java ~ HttpURLConnection ~
Sérialisation / désérialisation Json dans Java 1.4
Afficher la date actuelle en Java
Traitement de la date en Java (LocalDate: Initialization)
Générer l'URL de l'API CloudStack en Java
Hit l'API de Zaim (OAuth 1.0) en Java
Analyser l'analyse syntaxique de l'API COTOHA en Java
JPA (API de persistance Java) dans Eclipse
Qu'est-ce qu'une classe en langage Java (3 /?)
J'ai essayé d'utiliser l'API Elasticsearch en Java
Implémenter l'autorisation API Gateway Lambda dans Java Lambda
[Explication facile à comprendre! ] Conversion de type de type de référence en Java
Essayez d'utiliser l'API Stream en Java
Appelez l'API de notification Windows en Java
[Note personnelle] Le type de données Java est ennuyeux
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce qu'une classe en langage Java (2 /?)
Remplacez List <Optional <T >> par Optional <List <T >> en Java
Date de sortie en Java au format étendu ISO 8601
Java 8 pour démarrer maintenant ~ API de date et d'heure ~
Quelle est la méthode principale en Java?
L'API de sécurité Java EE est là!
Comment obtenir la date avec Java
Gérez d'énormes JSON avec Java Lambda
[Java] Différence entre equals et == dans une chaîne de caractères qui est un type de référence
À propos de la signification des variables de type, E, T, etc. utilisées dans les génériques utilisés en Java