Les objets JsonNullable ont toujours la valeur isPresent = true
JsonNullable est un objet couramment utilisé en PHP. Il a toujours la caractéristique que la valeur isPresent est vraie. Cela signifie qu'un objet JsonNullable est considéré comme présent, qu'il soit nul ou non. L'éditeur PHP Xinyi explorera les utilisations et les caractéristiques de l'objet JsonNullable dans l'article suivant et expliquera pourquoi sa valeur isPresent est toujours vraie. Grâce à une compréhension approfondie de l'objet JsonNullable, nous pouvons mieux comprendre son application et ses avantages dans le développement PHP.
Contenu de la question
J'ai un fichier au format json. Il stocke les objets json que j'utilise dans mes tests. J'ai utilisé objectmapper pour convertir ce fichier en objets et il s'est bien converti, mais il y a un problème. Tous les champs de l'objet ont un type de wrapper jsonnullabel. Le problème est le suivant : tous les objets jsonnullabel, même s'ils contiennent une valeur d'attribut nulle, sont présents = true. Par conséquent, les méthodes « orelse » et « ispresent » ne fonctionnent pas correctement. J'ai eu du NPE. Comment puis-je m'assurer que lors de la conversion à partir d'une chaîne ou d'un fichier json, ces champs sont égaux à « faux » s'il contient des valeurs nulles ?
exemple json :
65bee5661098cJ'ai essayé cette configuration pour objectmapper : Configuration du mappeur d'objets :
ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new JavaTimeModule()); objectMapper.registerModule(new Jdk8Module()); objectMapper.registerModule(new JsonNullableModule()); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
Workaround
Essayez d'utiliser @jsondeserialize jackson annotation sur les membres de la classe qui est nullable en json et vous voulez que la valeur soit "false" au lieu de null comme ceci :
public class MyJsonClass { @JsonDeserialize(using = CustomDeserializer.class) public String nullableMember; } public class CustomDeserializer extends StdDeserializer<String> { public CustomDeserializer() { this(null); } public CustomDeserializer(Class<?> vc) { super(vc); } @Override public String deserialize(JsonParser jsonparser, DeserializationContext context) { String text = jsonparser.getText(); if (null == text) { text = "false"; } return text; } }
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)
