Android 使用AutoValue和Gson进行JSON序列化/反序列化
示例
导入您的gradle根文件
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
导入您的gradle应用文件
apt 'com.google.auto.value:auto-value:1.2' apt 'com.ryanharter.auto.value:auto-value-gson:0.3.1' provided 'com.jakewharton.auto.value:auto-value-annotations:1.2-update1' provided 'org.glassfish:javax.annotation:10.0-b28'
创建具有自动值的对象:
@AutoValue public abstract class SignIn {
@SerializedName("signin_token") public abstract String signinToken();
public abstract String username();
public static TypeAdapter<SignIn> typeAdapter(Gson gson) {
return new AutoValue_SignIn.GsonTypeAdapter(gson);
}
public static SignIn create(String signin, String username) {
return new AutoValue_SignIn(signin, username);
}
}使用GsonBuilder创建Gson转换器
Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(
new AutoValueGsonTypeAdapterFactory())
.create());反序列化
String myJsonData = "{
\"signin_token\": \"mySigninToken\",
\"username\": \"myUsername\" }";
SignIn signInData = gson.fromJson(myJsonData, Signin.class);连载
Signin myData = SignIn.create("myTokenData", "myUsername");
String myJsonData = gson.toJson(myData);使用Gson是通过使用POJO对象简化序列化和反序列化代码的好方法。副作用是反射是昂贵的性能明智的选择。这就是为什么使用AutoValue-Gson生成CustomTypeAdapter可以避免这种反射开销,同时在发生api更改时保持非常简单的更新。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短