Исключение Gson Malformed через синтаксический анализ - PullRequest
0 голосов
/ 14 июля 2020

Здравствуйте, моя служба будет анализировать Json. Но у меня есть исключение Malformed. Мой код ниже;

 Object listOfGroups = sthService.getSthList();
    
    Gson gson = new Gson();
    
    JsonArray jsonArray = gson.fromJson(listOfGroups.toString(), JsonObject.class)
         .getAsJsonArray("memberNameList");
    
    List<String> myId = gson.fromJson(jsonArray, new TypeToken<ArrayList<String>>()) {
    }.getType();
    
      for(JsonElement element : JsonArray) {
    
        Json jsonObject = element.getAsJsonObject();
    
        String sthIndicator = jsonObject.get("readInd").getAsString();
    
        if (sthIndicator.equalsIgnoreCase("Y")) {
    
         String itemId = jsonObject.get("itemId").getAsString();
         myId.add(itemId);
      }
    }

1 Ответ

0 голосов
/ 14 июля 2020

Gson выдает это исключение, если он не может сопоставить полученную строку JSON с вашим JsonObject.class, вероятно, из-за несоответствия типов данных.

Либо проверьте типы данных для каждого атрибута, либо используйте ObjectMapper вместо использования Gson . ObjectMapper обрабатывает Json String независимо от вашего типа данных

...