Json Array to Map с использованием JsonSlurper - PullRequest
0 голосов
/ 24 мая 2019

Я хочу создать карту данных со значением pid в качестве ключа и именем в качестве массива для массива json. Вот структура json:

{
"measurements": [
    {
        "pid": 6691,
        "name": "lung",
        "measurement": "qualityFactor",
    },
    {
        "pid": 1106,
        "name": "kidney",
        "measurement": "qualityFactor",
    },
    {
        "id": 119,
        "name": "pancreas",
        "measurement": "qualityFactor",
    },

]

}

Вот моя попытка с Groovy, но я застрял:

    def jsonSlurper= new JsonSlurper()
    Object objs=jsonSlurper.parseText(jsonData) 
    List pp =objs.data 
    Map<String,String> m=new HashMap()
    pp.each{ it ->
        it.collect{Map mm ->
            println "Map m is ${mm}"

        }
    }

Я хочу, чтобы карта выглядела как ["6691": "легкое", "1106": "почка" ....] и т. Д.

Привет, я могу это сделать?

1 Ответ

0 голосов
/ 24 мая 2019

В качестве полного ответа с исправленным JSON:

def json = '''{
    "measurements": [
        {
            "pid": 6691,
            "name": "lung",
            "measurement": "qualityFactor",
        },
        {
            "pid": 1106,
            "name": "kidney",
            "measurement": "qualityFactor",
        },
        {
            "pid": 119,
            "name": "pancreas",
            "measurement": "qualityFactor",
        }
    ]
}
'''

import groovy.json.*

def parsed = new JsonSlurper().parseText(json)
def map = map.measurements.collectEntries { [it.pid.toString(), it.name] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...