Utilisation de @JsonFormat et @DataFormat

 Notes @JsonFormat principalement fond au premier plan, la conversion de format de l'heure

  Notes @DateTimeFormat principalement autour de l'arrière de la conversion de format de l'heure

@DateTimeFormat et la date peuvent être @JsonFormat entre les objets de conversion de format JSON et java.util.Date

@DateTimeFormat

Ceci fournit des annotations pour l'analyse de l'information de conversion, le format des informations de date JSON Spring Framework et se lient à l'objet Date, le champ de date peut être utilisé pour l'annotation, en spécifiant le format de date de JSON (motif)

class Pc{    
        ...        
        private String name;
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date birthday;
        ...
// 测试接收json字符串的日期信息 将其解析转换为 Date
    @RequestMapping("/demo1")
    public static void demo1(@RequestBody Pc pc){    
        System.out.println("Name: " + pc.getName());
        System.out.println("Brithday: " + pc.getBirthday());
        return;
    }

8080 / demo1 l'envoi d'une requête POST, les données JSON dans le corps de la demande sont les suivantes: http: // localhost:

{
    "name": "Aaron",
    "birthday": "2001-06-08 11:22:33"
}

Sortie de la console peut être observée comme suit:

Name: Aaron
    Brithday: Fri Jun 08 00:00:00 CST 2001

JSON peut voir que la transmission de données de date de fin avant est correctement résoudre l'extrémité arrière, et se lient au type de champ de date, à noter que, conformément à l'analyse syntaxique parse le schéma JSON donné. Ainsi, JSON, si vous devez remplir le 0 mois chiffres et jour, et que pour ce dernier HH: mm: ss due pas écrit dans le modèle, il est pas résolu, il est réglé sur 0

@JsonFormat

Jackson prévu cadre d'annotation, l'objet Date dans une analyse de données au format JSON, annotation pour le champ de date peut également spécifier une date souhaitée format JSON (motif)

class Pc{    
        ...        
        private String name;
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") 
        private Date birthday;
        ...
import cn.hutool.core.date.DateTime;
    ...

    // 测试 将 Date日期数据 转换为 JSON格式数据
    @RequestMapping("/demo2")
    public static Pc demo2(@RequestBody Pc pc){
        pc.setBirthday(DateTime.now());
        System.out.println("Brithday: " + pc.getBirthday());
        System.out.println("Name: " + pc.getName());
        return pc;
    }

Http: // localhost: 8080 / demo2 l'envoi d'une requête POST, le corps de demande de données JSON est:

{
    "name": "Tony",
    "birthday": null
}

Sortie de la console peut être observée comme suit:

Brithday: 2019-07-31 17:20:04
    Name: Tony

corps JSON répond comme suit:

{
        "name": "Tony",
        "birthday": "2019-07-31"
    }

La sortie de la console, les données de date sont visibles à l'arrière est correctement réglée. Pendant ce temps objet Date pour analyser les données sont écrites correctement dans les données et le corps réponse JSON. Il convient de noter que la résolution sera résolu au motif donné JSON JSON. Par conséquent, ce dernier HH: mm: ss chaque minute quand aucune information est écrit dans le modèle, car, il n'est pas analysé.

 

Publié 272 articles originaux · louange gagné 19 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/hello_cmy/article/details/104823508
conseillé
Classement