首先,感谢您抽出时间!
因此,我已经使用Groovy几周了,但似乎无法转换以下json结构:
{
"collection_1": [
[
"value_1",
"value_2",
"value_3"
],
[
"value_1",
"value_2",
"value_3",
"value_4"
]
],
"collection_2": [
[
"value_1",
"value_2",
"value_3",
"value_4",
"value_5"
]
],
"collection_3": [
[
"value_1",
"value_2"
]
]
}
类似于:
{
"collection_1": [
[
"value_1": false,
"value_2": false,
"value_3": false
],
[
"value_1": false,
"value_2": false,
...
以下是我的操作方法:
Map<String, Object> getSelectableItems(Map<String, Object> jsonDeserialized) {
def selectableItems = [:]
jsonDeserialized.each { collection, subCollection ->
selectableItems.put(collection, [:])
subCollection.eachWithIndex { items, index ->
selectableItems.get(collection).putAt(index, items.collect { value ->
[
"${value}" : false
]
})
}
}
return selectableItems
}
我已经尝试了好几天了,并没有那么难,我甚至成功了,但最终的代码看起来非常错误。你知道我如何利用Groovy的力量实现这样的目标吗?
感谢专业人士:D
import groovy.json.*
def data = new JsonSlurper().parseText('''
{...your json here...}
''')
data.replaceAll { k, v -> v = v.collect { it.collectEntries { [it,false] } } }
println new JsonBuilder(data).toPrettyString()
输出:
{
"collection_1": [
{
"value_1": false,
"value_2": false,
"value_3": false
},
{
"value_1": false,
"value_2": false,
"value_3": false,
"value_4": false
}
],
"collection_2": [
{
"value_1": false,
"value_2": false,
"value_3": false,
"value_4": false,
"value_5": false
}
],
"collection_3": [
{
"value_1": false,
"value_2": false
}
]
}