On Sun, Oct 14, 2018 at 12:58 PM Volkan Yazıcı <volkan.yaz...@gmail.com> wrote: > > God bless you Tatu! Worked like a charm! > Given below snippet, would you mind checking one more time that I am not > doing something stupid, please? > > public static void main(String[] args) throws IOException { > > // Create the delegate. > ObjectMapper objectMapper = new ObjectMapper(); > JsonFactory jsonFactory = new JsonFactory(objectMapper); > ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); > JsonGenerator jsonGenerator = jsonFactory.createGenerator(outputStream); > NullExcludingTokenFilter tokenFilter = new NullExcludingTokenFilter(); > FilteringGeneratorDelegate generatorDelegate = new > FilteringGeneratorDelegate(jsonGenerator, tokenFilter, true, true); > > // Start the object. > generatorDelegate.writeStartObject(); > > // Write a non-empty field. > generatorDelegate.writeStringField("foo", "bar"); > > // Write a null-valued field. > generatorDelegate.writeFieldName("baz"); > generatorDelegate.writeNull(); > > // Write {"x": {"y": []}}. > generatorDelegate.writeFieldName("x"); > generatorDelegate.writeStartObject(); > generatorDelegate.writeFieldName("y"); > generatorDelegate.writeStartArray(); > generatorDelegate.writeEndArray(); > generatorDelegate.writeEndObject(); > > // End the object. > generatorDelegate.writeEndObject(); > > // Generate the JSON. > jsonGenerator.flush(); > String json = outputStream.toString("UTF-8"); > System.out.println(json); > > } > > private static class NullExcludingTokenFilter extends TokenFilter { > > @Override > public boolean includeNull() { > return false; > } > > }
Ah! I had forgotten there actually already was this quite specific filtering option!!! :-D Yes, that looks legit, thank you for sharing. -+ Tatu +- > > > > > On Saturday, October 13, 2018 at 11:21:02 PM UTC+2, Tatu Saloranta wrote: >> >> On Sat, Oct 13, 2018 at 1:22 PM Volkan Yazıcı <volkan...@gmail.com> wrote> >> >> > While using `JsonGenerator`, how can I exclude empty/null/blank object >> > fields? >> > >> > (I have asked the very same question on SO as well, but could not get any >> > answer yet. Hence the cross-post.) >> >> By not writing them. >> >> That is, generator writes exactly what you ask it to. It is possible >> to implement a `JsonGeneratorDelegate` >> that could block calls, and in fact `FilteringGeneratorDelegate` does >> this to allow structural exclusion/inclusion. >> >> -+ Tatu +- > > -- > You received this message because you are subscribed to the Google Groups > "jackson-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jackson-user+unsubscr...@googlegroups.com. > To post to this group, send email to jackson-user@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user+unsubscr...@googlegroups.com. To post to this group, send email to jackson-user@googlegroups.com. For more options, visit https://groups.google.com/d/optout.