resposta de mapeamento do Google Spreadsheets JSON para mensagem de erro retorna java objeto

methuselah:

Estou recebendo o seguinte resultado JSON:

{
  "range": "Frontpage!E6:E15",
  "majorDimension": "ROWS",
  "values": [
    [
      "FundRequest"
    ],
    [
      "nOS"
    ],
    [
      "NEX"
    ],
    [
      "DREP"
    ],
    [
      "ChromaWay"
    ],
    [
      "Jura"
    ],
    [
      "Origo"
    ],
    [
      "Phantasma"
    ],
    [
      "NuCypher"
    ],
    [
      "Oasis Labs"
    ]
  ]
}

Então, eu criei o seguinte invólucro:

public class Wrapper {

     private String range;
     private String majorDimension;
     private List<String> values;

     // getters and setters

}

Agora eu quero usar GsonBuilderpara mapear o JSON ao meu objeto:

Gson gson = new GsonBuilder().create();
Wrapper w = gson.fromJson(jsonString, Wrapper.class);

mas eu recebo o seguinte erro:

java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 37 path $.values[0]

Como faço para corrigir isso? Existe alguma maneira para mim para convertê-lo a partir de um List<List<String>>a um List<String>?

VelNaga:

Primeiro, você deve usar List List<<List<String>>em vez de List<String>para os valores.

Segundo, você pode obter List<String>a partir List<List<String>>usando o código abaixo,

public <T> List<T> flattenListOfListsImperatively(
    List<List<T>> nestedList) {
    List<T> ls = new ArrayList<>();
    nestedList.forEach(ls::addAll);
    return ls;
}

ou usando Java-8

public <T> List<T> flattenListOfListsStream(List<List<T>> list) {
    return list.stream()
      .flatMap(Collection::stream)
      .collect(Collectors.toList());    
}

Além disso, fazer uma pesquisa no Gson há qualquer built-in maneira de achatar a coleção aninhada. Por favor, poste aqui se há alguma coisa.

Edit 1: Eu fiz uma rápida pesquisa na biblioteca Gson e parece possible.You têm escrever um adaptador para conseguir as coisas. Por favor, consulte esta ligação link2

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=209994&siteId=1
Recomendado
Clasificación