Hagyd figyelmen kívül a Null Fields-t Jackson-szal
1. Áttekintés
Ez a gyors bemutató kitér a telepítés módjára Jackson figyelmen kívül hagyja a null mezőket a sorosítás során java osztály.
Ha mélyebbre akarsz ásni, és további jó dolgokat akarsz megtudni, amelyeket a Jackson 2-vel tehetsz - menj át a Jackson fő oktatóanyagára.
2. Hagyja figyelmen kívül a Null mezőket az osztályon
Jackson lehetővé teszi ennek a viselkedésnek az irányítását az osztály szintjén:
@JsonInclude (Include.NON_NULL) nyilvános osztály MyDto {...}
Vagy - pontosabban - terepi szinten:
public class MyDto {@JsonInclude (Include.NON_NULL) private String stringValue; private int intValue; // szabványos mérőeszközök és beállítók}
Most képesnek kell lennünk tesztelni ezt nulla értékek valóban nem részei a végső JSON kimenetnek:
@Test public void givenNullsIgnoredOnClass_whenWritingObjectWithNullField_thenIgnored () dobja a JsonProcessingException {ObjectMapper mapper = new ObjectMapper (); MyDto dtoObject = new MyDto (); Karakterlánc dtoAsString = mapper.writeValueAsString (dtoObject); assertThat (dtoAsString, tartalmazString ("intValue")); assertThat (dtoAsString, nem (tartalmazzaString ("stringValue"))); }
3. Hagyja figyelmen kívül a Null Fields globálisan
Jackson is megengedi konfigurálja ezt a viselkedést globálisan a ObjectMapper:
mapper.setSerializationInclusion (Include.NON_NULL);
Most bármelyik nulla az ezen a leképezőn keresztül sorosított bármely osztály mezőjét figyelmen kívül hagyják:
@Test public void givenNullsIgnoredGlobally_whenWritingObjectWithNullField_thenIgnored () dobja a JsonProcessingException {ObjectMapper mapper = new ObjectMapper (); mapper.setSerializationInclusion (Include.NON_NULL); MyDto dtoObject = new MyDto (); Karakterlánc dtoAsString = mapper.writeValueAsString (dtoObject); assertThat (dtoAsString, tartalmazString ("intValue")); assertThat (dtoAsString, tartalmazString ("booleanValue")); assertThat (dtoAsString, nem (tartalmazzaString ("stringValue"))); }
4. Következtetés
Figyelmen kívül hagyva nulla mező olyan gyakori Jackson-konfiguráció, mert gyakran előfordul, hogy jobban ellenőriznünk kell a JSON kimenetet. Ez a cikk bemutatja, hogyan kell ezt csinálni az osztályoknál. Vannak azonban fejlettebb esetek, például a null értékek figyelmen kívül hagyása a Térkép sorosítása során.
Mindezen példák és kódrészletek megvalósítása megtalálható a Github projektemben.