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:
Alerts
classe que possui os seguintes campos - status, data, hora, descrição eLabels
classe.O interior
Labels
da classe que é suposto para conter todos os campos defield1
meiofield100
(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 Alert
objecto e o Labels
objecto.
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?
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