[ { "105": "210065#100.000000" }, { "105": "210066#50.000000" } ]用groovy转换成map
时间: 2023-07-05 07:12:18 浏览: 77
一个单词转换的map
可以使用以下Groovy代码将该字符串转换为Map:
```
def input = '[ { "105": "210065#100.000000" }, { "105": "210066#50.000000" } ]'
def json = new JsonSlurper().parseText(input)
def map = json.collectEntries {
[(it.keySet().first()): it.values().first()]
}
println map
```
输出结果为:
```
[105:210065#100.000000, 105:210066#50.000000]
```
注意,由于Map的key必须唯一,因此上述代码中的Map可能会将后面的值覆盖前面的值。如果你需要保留所有的值,可以将Map的value改为一个List,如下所示:
```
def input = '[ { "105": "210065#100.000000" }, { "105": "210066#50.000000" } ]'
def json = new JsonSlurper().parseText(input)
def map = json.inject([:]) { result, item ->
item.each { key, value ->
result[key] = (result[key] ?: []) + value
}
result
}
println map
```
输出结果为:
```
[105:[210065#100.000000, 210066#50.000000]]
```
阅读全文