So how do you serialize NULL ?
NULL would typically mean that the attribute is omitted from the json, but what if you WANT the NULL to be there, to symbolize an attribute that should be REMOVED.
@AllArgsConstructor @NoArgsConstructor @Getter @Setter @ToString public static class Product { public String model; public String color; public String shirtSize; } @Test void howToSerializeNULL() { Product bossShirt = new Product("super slim", "red", "xl"); System.out.println("Product : " + JSONUtils.stringify(bossShirt)); bossShirt.setShirtSize(null); System.out.println("Product : " + JSONUtils.stringify(bossShirt)); Map<String, Object> obj = new HashMap<>(); obj.put("model", "super slim"); obj.put("color", "red"); obj.put("shirtSize", JSONObject.NULL); System.out.println("Product : " + JSONUtils.stringify(obj)); GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); Gson gson = builder.create(); System.out.println("Product : " + gson.toJson(obj)); System.out.println("Product : " + gson.toJson(bossShirt)); }