Строковый массив карт получает ключ и значение - PullRequest
0 голосов
/ 03 апреля 2020

Из ответа API я анализирую JSON

String myData = jsonSlurper.parseText(responseBody)
Map parsedBiblio = jsonSlurper.parseText(myData)

ниже - результат parsedBiblio

{"Data": {"AppNumber": "15671037", "CustomerNumber": "81744", "Date": "08-07-2017", "Status": "Active"}, 

 "Applicants": [{"Name": "abcd Inc.", "Address": "xxx, CA (US)"}],

ниже - код повторного получения Data ключ и соответствующее значение

Map<Object, Object> innerMap = parsedBiblio.get("Data")
for (Object objectName : innerMap.keySet()) {

       println("Key: " + objectName + " Value: "+ innerMap.get(objectName) +".");
 }

Дайте мне знать, как я могу получить ключ Applicants и соответствующие значения, потому что это формат map<string,List<string>, поэтому я объявлю внутреннюю карту в следующем формате

Map<String, List<String>> innerMapApplicant = parsedBiblio.get("Applicants")

Я получаю сообщение об ошибке ниже

 Cannot cast object '[{Address=xxx, CA (US), Name=abcd Inc.}]' with class 'java.util.ArrayList' to class 'java.util.Map' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.util.Map(groovy.json.internal.LazyMap)

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Я думаю, вам следует попытаться получить Заявителя следующим образом:

List<Map<String,String>> applicantList =  = parsedBiblio.get("Applicants")

Вы можете получить ключ и значение на карте следующим образом:

  for(Map<String,String> applicantMap: applicantList)
  {
       for (Object objectName : applicantMap.keySet()) 
       {
          println("Key: " + objectName + " Value: "+ applicantMap.get(objectName) +".");
       }
   }
0 голосов
/ 03 апреля 2020

Не понимаю, почему вы дважды анализируете строку

Если responseBody - строка, вы можете написать:

def json = jsonSlurper.parseText(responseBody)
println json.Data.Applicants.Name
println json.Data.Applicants.Address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...