我想将我的POGO转换为json,但键全部为小写。
class Device {
MoreInfo moreInfo
...some other fields...
}
class MoreInfo {
String thisIsCamelCase
}
当我使用new JsonBuilder(device).toPrettyString()
时,会从成员名称复制密钥(即处于驼峰状态)。但是我希望“moreInfo”和“thisIsCamelCase”键都是小写的。有没有一种巧妙的方法来实现这一目标?
我遇到的解决方案包括使用JsonSlurper转换为地图,然后手动重命名键(从地图中删除obj,并使用新名称重新添加)并转换回Json。
是否有一些Groovy等价于@JsonProperty
?
答案 0 :(得分:0)
以下脚本使所有地图键都小写:
import groovy.transform.Field
def m = [A:1, B:2, c:[D:2]]
@Field
def c = { k, v -> [(k.toLowerCase()):(v in Map)? v.collectEntries(c): v] }
assert m.collectEntries(c) == [a:1, b:2, c:[d:2]]