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.