Hi John, Looks very useful, so +1
One thing that would also be useful is to be able to configure the ability to disable unicode encoding. It doesn't seem to be recommended for all circumstances. See: http://stackoverflow.com/questions/12271547/shouldnt-json-stringify-escape-unicode-characters?noredirect=1&lq=1 And it is blocking resolution of this issue: https://github.com/grails/grails-views/issues/71 Thoughts? On Mon, Sep 12, 2016 at 12:02 AM, John Wagenleitner <john.wagenleit...@gmail.com> wrote: > On Sun, Sep 11, 2016 at 11:51 AM, Kostas Saidis <sai...@gmail.com> wrote: >> >> +1, definitely! >> >> If it is possible, the dateFormat method should also accept an optional >> Locale parameter (as mentioned in TODO comment in the source), with a >> default value of Locale.US. >> >> Cheers, >> Kostas >> > > > Thanks for pointing that out, I had forgot about that. I added a new method > that accepts both a date format string and Locale. > > >> >> >> On 11/9/2016 6:59 πμ, John Wagenleitner wrote: >> >> Groovy Json users, >> >> I recently worked on a project where it would have been helpful if >> JsonOutput/JsonBuilder/StreamingJsonBuilder had options for controlling the >> output. I noticed there were some open tickets [1] for feature requests >> around this so decided to try to add some options to control the >> serialization and have proposed a pull request >> (https://github.com/apache/groovy/pull/371). >> >> Just wanted to poll those that use the Json generating features in Groovy >> to see if you think these options would be useful and would welcome any code >> review for those that would be interested in reviewing the PR. For a quick >> overview I've included a sample below [2]. >> >> [1] >> GROOVY-6699: JSON slurper ability to ignore propertie/field names (at >> least the serializing part) >> GROOVY-6854: JsonOutput should be configurable with ISO 8601 UTC time zone >> instead of GMT >> GROOVY-7682: JsonBuilder or JsonOutput incompatible with JodaTime (for now >> via a closure converter) >> GROOVY-7780: JSONBuilder/JSONSlurper: Option to Only Include NonNull >> values >> GROOVY-7858: Make JsonBuilder configurable to not write entries with null >> values >> >> [2] >> >> import groovy.json.* >> >> def options = JsonOutput.options() >> .excludeNulls() >> .excludeFieldsByName('make', 'country', 'record') >> .excludeFieldsByType(Number) >> .addConverter(URL) { url -> '"http://groovy-lang.org"' } >> >> StringWriter writer = new StringWriter() >> StreamingJsonBuilder builder = new StreamingJsonBuilder(writer, options) >> >> builder.records { >> car { >> name 'HSV Maloo' >> make 'Holden' >> year 2006 >> country 'Australia' >> homepage new URL('http://example.org') >> record { >> type 'speed' >> description 'production pickup truck with speed of 271kph' >> } >> } >> } >> >> assert writer.toString() == '{"records":{"car":{"name":"HSV >> Maloo","homepage":"http://groovy-lang.org"}}}' >> >> > -- Graeme Rocher