Maison  >  Article  >  Java  >  Comment exclure des champs des objets Java lors de l'envoi de JSON dans Spring MVC ?

Comment exclure des champs des objets Java lors de l'envoi de JSON dans Spring MVC ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 00:49:02479parcourir

How to Exclude Fields from Java Objects When Sending JSON in Spring MVC?

Ignorer les champs des objets Java lors de l'envoi de JSON depuis Spring MVC

Dans les applications Spring MVC, il est souvent souhaitable d'exclure sélectivement certains champs des objets Java lors de leur envoi en tant que Réponses JSON. Cela garantit que seules les informations nécessaires sont partagées avec les clients, améliorant ainsi la confidentialité des données et réduisant la consommation de bande passante.

Énoncé du problème

Dans le code fourni, la classe de modèle User comporte des champs pour createBy, updateBy, et chiffréPwd. Cependant, l'exigence est d'ignorer dynamiquement ces champs lors de l'envoi de la réponse JSON.

Solution

Il existe deux manières d'exclure dynamiquement des champs à l'aide d'annotations :

1 . Utilisation de @JsonIgnoreProperties("fieldname") :

Annotez la classe User avec @JsonIgnoreProperties("fieldname"), en spécifiant les champs qui doivent être exclus. Par exemple :

<code class="java">@JsonIgnoreProperties(value = {"createdBy", "updatedBy", "encryptedPwd"})
public class User {
    // ... (Class definition remains the same)
}</code>

2. Utilisation de @JsonIgnore sur des champs individuels :

Annotez des champs spécifiques avec @JsonIgnore avant la déclaration du champ. Par exemple :

<code class="java">public class User {
    private Integer userId;
    private String userName;
    
    @JsonIgnore
    private String encryptedPwd;
    
    // ... (Other fields remain the same)
}</code>

Remarque : @JsonIgnore est l'approche recommandée car elle offre un contrôle plus granulaire sur les champs à exclure.

Exemple GitHub

Pour une implémentation pratique, reportez-vous à l'exemple GitHub suivant : https://github.com/FasterXML/jackson-databind/issues/1416

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn