在使用GSon的android中@SerializedName注释的基本用途是什么?
任何人都可以告诉我什么是使用GSON的@SerializedName注释的基本目的
给我一个不同的例子。 我已经检查了不同的网站,但我不明白什么是使用它的主要目的。
Java类的例子,
public class Person { @SerializedName("name") private String personName; @SerializedName("bd") private String birthDate; }
这个class有两个领域,代表人的姓名和出生date。 这些字段使用@SerializedName注释进行注释。 这个注解的参数(值)是serialising
和deserialising
对象时要使用的名称。 例如,Java字段personName在JSON中表示为名称 。
JSON示例,
{ "name":"chintan", "bd":"01-01-1990" }
这里已经有很less的答案了,但是我想补充一点,如果你正在使用ProGuard
来模糊你的代码并且不在你的模型类中使用@SerializedName("name")
,那么你的GSON将不起作用。 因为由于混淆,您的variables名称可能已经从String name
更改为String a
导致GSONparsing,因为GSON将查找密钥a
到json它将失败。
通过指定@SerializedName
,GSON将不会查找基于variables名称的JSON,只会使用指定的@SerializedName
。
当然,你可以告诉proguard不要模糊你的模型,但是如果你想模型混淆,那么你必须指定@SerializedName
- 内存分析工具在android?
- 什么时候应该使用Theme.AppCompat vs ThemeOverlay.AppCompat?
- zipalign工具没有在SDK中find
- 将ZXing库直接集成到我的Android应用程序中
- 通过Gradle和Android Studio构build和运行应用程序比通过Eclipse慢
- 自动完成已停止与Android SDK的工作
- 无法重写AsyncTask类中的onPostExecute()方法或让它触发
- 为什么在Android棒棒糖中用Notification.Builder.setSmallIcon设置的图标显示为白色方块?
- Android可绘制目录是否可以包含子目录?