Quando definiamo una classe con seguente formatoGSON come ottenere nome serializzato
public class Field {
@SerializedName("name")
public String name;
@SerializedName("category")
public String category;
}
per il JsonObject
contenuti
{
"name" : "string",
"category" : "string",
}
e utilizzando Gson
per analizzare il contenuto
Field field = new GsonBuilder().create().fromJson(
content, Field.class);
Così , la mia domanda è possibile utilizzare Gson
per ottenere loNome. In questo caso, voglio sapere che nome è utilizzato per @Serialized
field.name
, che è name
e per field.category
che è category
.
Secondo suggerito da @Sotirios Delimanolis, utilizzando Reflection
possiamo ottenere il nome Serialized
java.lang.reflect.Field fields = Field.class.getDeclaredField("name");
SerializedName sName =fields.getAnnotation(SerializedName.class);
System.out.println(sName.value());
se disponiamo di "nome", non è necessario utilizzare il riflesso e ottenere il valore. c'è un modo per ottenere solo dal campo come solo usando la variabile 'name' senza effettivamente usare il" nome "della stringa –