【发布时间】:2014-06-09 05:51:43
【问题描述】:
当我们定义一个如下格式的类时
public class Field {
@SerializedName("name")
public String name;
@SerializedName("category")
public String category;
}
对于JsonObject 内容
{
"name" : "string",
"category" : "string",
}
并使用Gson解析内容
Field field = new GsonBuilder().create().fromJson(
content, Field.class);
所以,我的问题是我们可以使用Gson 来获取@Serialized 名称。因为在这种情况下,我想知道 @Serialized 名称用于 field.name,即 name 和 field.category,即 category。
根据@Sotirios Delimanolis 的建议,使用Reflection 我们可以获得Serialized 名称
java.lang.reflect.Field fields = Field.class.getDeclaredField("name");
SerializedName sName =fields.getAnnotation(SerializedName.class);
System.out.println(sName.value());
【问题讨论】:
-
如果我们有
"name",那么就不需要使用反射和获取值。有没有办法只从字段中获取,比如只使用变量name,而不实际使用字符串“name”