当我们定义具有以下格式的类时
public class Field {
@SerializedName("name")
public String name;
@SerializedName("category")
public String category;
}
Run Code Online (Sandbox Code Playgroud)
对于JsonObject内容
{
"name" : "string",
"category" : "string",
}
Run Code Online (Sandbox Code Playgroud)
并Gson用于解析内容
Field field = new GsonBuilder().create().fromJson(
content, Field.class);
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是我们可以用它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());
Run Code Online (Sandbox Code Playgroud)
Sot*_*lis 14
使用反射来检索所需的Field对象.然后,您可以使用Field#getAnnotation(Class) 获取SerializedName可以调用的实例value()来获取名称.
| 归档时间: |
|
| 查看次数: |
8124 次 |
| 最近记录: |