Como converter campos JSON em um mapa JAVA usando Gson

BlueChips23:

Eu tenho dados JSON que tem esta aparência:

{
 "status": "status",
 "date": "01/10/2019",
 "time": "10:30 AM",
 "labels": {
     "field1": "value1",
     "field2": "value2",
     ...
     "field100": "value100"
 }
 "description": "some description"
}

No meu código Java, eu tenho duas classes:

  1. Alertsclasse que possui os seguintes campos - status, data, hora, descrição e Labelsclasse.

  2. O interior Labelsda classe que é suposto para conter todos os campos de field1meio field100(e mais)

Eu sou analisar esta JSON em Gson assim:

Alerts myAlert = gson.fromJson(alertJSON, Alert.class);

O código acima analisa o JSON para o Alertobjecto e o Labelsobjecto.

Pergunta: Em vez de mapear os campos ( field1, field2, etc.) dentro de rótulos de objetos como campos de cordas individuais, como posso analisá-los em um mapa?

Por exemplo, o objeto Labels ficaria assim:

public class Labels {

   // I want to parse all the fields (field1, field2, etc) into 
   // this map
   Map<String, String> fields = new HashMap<>(); 

}

Como eu faço isso?

receptor:

Declarando objeto de alerta como este:

public class Alert {
    private String description;
    private String status;
    private Map<String, String> labels;
    ...
}

funciona para mim e este código

Alert myAlert = gson.fromJson(alertJSON, Alert.class);
System.out.println(myAlert.getLabels());

imprime o mapa como {field1=value1, field2=value2, field100=value100}

De modo que nenhum objeto intermediário é exigido

Acho que você gosta

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