


Quand utiliser les annotations @JsonManagedReference et @JsonBackReference en Java à l'aide de Jackson ?
Les
@JsonManagedReference et @JsonBackReference annotations peuvent être utilisées pour créer des structures JSON de >manière bidirectionnelle. L'annotation @JsonManagedReference est une référence avant qui est incluse lors de la sérialisation, tandis que l'annotation @JsonBackReference est une référence arrière qui est omise lors de la sérialisation.
Dans l'exemple ci-dessous, nous pouvons implémenter les annotations @JsonManagedReference et @JsonBackReference.
Exemple
import java.util.*; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class ManagedReferenceBackReferenceTest { public static void main(String args[]) throws JsonProcessingException { BackReferenceBeanTest testBean = new BackReferenceBeanTest(110, "Sai Chaitanya"); ManagedReferenceBeanTest bean = new ManagedReferenceBeanTest(135, "Adithya Ram", testBean); testBean.addEmployees(bean); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean); System.out.println(jsonString); } } class ManagedReferenceBeanTest { public int empId = 115; public String empName = "Raja Ramesh"; @JsonManagedReference public BackReferenceBeanTest manager; public ManagedReferenceBeanTest(int empId, String empName, BackReferenceBeanTest manager) { this.empId = empId; this.empName = empName; this.manager = manager; } } class BackReferenceBeanTest { public int empId = 125; public String empName = "Jai Dev"; @JsonBackReference public List<ManagedReferenceBeanTest> list; public BackReferenceBeanTest(int empId, String empName) { this.empId = empId; this.empName = empName; list = new ArrayList<ManagedReferenceBeanTest>(); } public void addEmployees(ManagedReferenceBeanTest managedReferenceBeanTest) { list.add(managedReferenceBeanTest); } }
Sortie
{ "empId" : 135, "empName" : "Adithya Ram", "manager" : { "empId" : 110, "empName" : "Sai Chaitanya" } }
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

AJackson est une API Java JSON qui propose plusieurs manières différentes de traiter JSON. Nous pouvons convertir des données CSV en données JSON à l'aide de la classe CsvMapper, qui est un ObjectMapper spécial avec des fonctionnalités étendues pour convertir les POJO en instances CsvSchema. Nous pouvons créer un ObjectReader avec les paramètres par défaut en utilisant la méthode reader(). Pour convertir, nous devons importer com.fasterxml.jac

[Avis de vulnérabilité] Le 19 février, NVD a publié un avis de sécurité révélant une vulnérabilité d'exécution de code à distance (CVE-2020-8840) dans Jackson-databind causée par une injection JNDI, avec un score CVSS de 9,8. La version concernée de jackson-databind ne dispose pas de certaines classes de liste noire xbean-reflect/JNDI, telles que org.apache.xbean.propertyeditor.JndiConverter, ce qui peut inciter les attaquants à utiliser l'injection JNDI pour réaliser l'exécution de code à distance. À l'heure actuelle, le fabricant a publié une nouvelle version pour terminer la réparation de la vulnérabilité. Les utilisateurs concernés sont priés de mettre à niveau à temps pour se protéger. Depuis le S utilisé dans le projet

Le JSONJackson est une bibliothèque pour Java. Il possède des capacités de liaison de données très puissantes et fournit un cadre pour sérialiser des objets Java personnalisés en JSON et désérialiser JSON en objet Java. Nous pouvons également convertir un format XML en objet POJO à l'aide de la méthode readValue () du Xml Mapper.

Jackson est une bibliothèque basée sur Java utile pour convertir des objets Java en JSON et JSON en objets Java. JacksonAPI est plus rapide que les autres API, nécessite moins de zone mémoire et convient aux objets volumineux. Nous utilisons la méthode writeValueAsString() de la classe XmlMapper pour convertir le POJO au format XML, et l'instance POJO correspondante doit être passée en paramètre à cette méthode. Syntaxe publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingExceptionExampleimp

JSONObject peut analyser le texte d'une chaîne pour générer un objet de type Map. Les énumérations peuvent être utilisées pour définir des collections de constantes, et nous pouvons utiliser des énumérations lorsque nous avons besoin d'une liste prédéfinie de valeurs qui ne représente pas une sorte de données numériques ou textuelles. Nous pouvons convertir des objets JSON en énumérations en utilisant la méthode readValue() de la classe ObjectMapper. Dans l'exemple ci-dessous, nous pouvons utiliser la bibliothèque Jackson pour convertir/désérialiser un objet JSON en une énumération Java. Exemple importcom.fasterxml.jackson.databind.*;publicclassJSONToEnumTest{ &

Les paramètres par défaut de tous les analyseurs JSON peuvent être représentés à l'aide de l'énumération JsonParser.Feature. JsonParser.Feature.values() renverra toutes les fonctionnalités disponibles pour JSONParser, mais le fait qu'une fonctionnalité soit activée ou désactivée pour un analyseur spécifique peut être déterminé à l'aide de la méthode isEnabled() de JsonParser. Syntaxe publicstaticenumJsonParser.FeatureextendsEnum<JsonParser.Feature>Exemple importcom.fas

1. Contexte : Certaines informations sensibles du projet ne peuvent pas être affichées directement, telles que les numéros de téléphone portable des clients, les cartes d'identité, les numéros de plaque d'immatriculation et d'autres informations. Une désensibilisation des données est requise lors de l'affichage pour éviter toute fuite de la vie privée des clients. La désensibilisation consiste à traiter une partie des données avec des symboles de désensibilisation (*). 2. Lorsque la cible renvoie des données du serveur, utilisez la sérialisation Jackson pour terminer la désensibilisation des données afin d'obtenir un affichage désensibilisé des informations sensibles. Réduisez le nombre de développements répétés et améliorez l'efficacité du développement pour former des règles de désensibilisation unifiées et efficaces. Cela peut être basé sur la méthode de désensibilisation de réécriture de la mise en œuvre de désensibilisation par défaut pour répondre aux exigences de désensibilisation de scénarios commerciaux personnalisés évolutifs et personnalisables. Basé sur l'implémentation de la sérialisation désensibilisée Jackson Custom de StdSerializer : tous standards

L'annotation @ConstructorProperties provient du package java.bean et est utilisée pour désérialiser JSON en objets Java via un constructeur annoté. Cette annotation est prise en charge à partir de Jackson 2.7. Le fonctionnement de cette annotation est très simple, au lieu d'annoter chaque paramètre du constructeur, nous pouvons fournir un tableau contenant les noms de propriétés pour chaque paramètre du constructeur. Syntaxe@Documented@Target(value=CONSTRUCTOR)@Retention(value=RUNTIME)public@interfaceConstructorPropertiesExample impo
