Search code examples
javajsongrailsgroovy

How to keep Letter Case in JSON Converter method in Groovy?


I'm trying to parse a groovy object to JSON. The properties names don't follow the correct camel case form.

class Client {
    String Name
    Date Birthdate
}

When I use this

Client client = new Client(Name: 'Richard Waters', Birthdate: new Date())
println (client as JSON).toString(true)

I got this

"client": {
      "name": 'Richard Waters',
      "birthdate": "2016-07-22T03:00:00Z",
}

How can I keep de Upper Case in start of my properties keys?


Solution

  • Another option is to use a gson serializer with annotations: https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName.html

    @Grab('com.google.code.gson:gson:2.7+')
    import com.google.gson.Gson
    import com.google.gson.annotations.SerializedName
    
    class Client {
        @SerializedName("Name")
        String name
    
        @SerializedName("Birthdate")
        Date birthdate
    }
    
    def client = new Client(name: 'John', birthdate: new Date())
    
    def strJson = new Gson().toJson(client)
    println strJson