Objek JsonNullable sentiasa mempunyai nilai isPresent = benar
JsonNullable ialah objek yang biasa digunakan dalam PHP Ia sentiasa mempunyai ciri bahawa nilai isPresent adalah benar. Ini bermakna objek JsonNullable dianggap hadir tanpa mengira sama ada ia batal atau tidak. Editor PHP Xinyi akan meneroka kegunaan dan ciri objek JsonNullable dalam artikel berikut, dan menerangkan sebab nilai isPresentnya sentiasa benar. Dengan pemahaman yang mendalam tentang objek JsonNullable, kita boleh lebih memahami aplikasi dan kelebihannya dalam pembangunan PHP.
Kandungan soalan
Saya mempunyai fail dalam format json. Ia menyimpan objek json yang saya gunakan dalam ujian saya. Saya menggunakan objectmapper untuk menukar fail ini kepada objek dan ia ditukar dengan baik, tetapi terdapat masalah. Semua medan dalam objek mempunyai jenis pembungkus jsonnullabel. Masalahnya adalah seperti berikut - semua objek jsonnullabel, walaupun ia mengandungi nilai atribut null ispresent = true. Oleh itu, kaedah "orelse" dan "ispresent" tidak berfungsi dengan betul. saya dapat npe. Bagaimanakah saya boleh memastikan bahawa apabila menukar daripada rentetan atau fail json, medan ini sama dengan "palsu" jika terdapat nilai nol di dalamnya?
contoh json:
65bee5661098cSaya telah mencuba konfigurasi ini untuk objectmapper: Konfigurasi pemeta objek:
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);
Penyelesaian
Cuba gunakan @jsondeserialize jackson anotasi pada ahli kelas yang boleh dibatalkan dalam json dan anda mahu nilainya menjadi "palsu" dan bukannya nol seperti ini:
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; } }
Atas ialah kandungan terperinci Objek JsonNullable sentiasa mempunyai nilai isPresent = benar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
