+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

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' year2006 country'Australia' homepagenew 
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"}}}'


Reply via email to