美文网首页Android-2
Json解析中@SerializedName注解妙用

Json解析中@SerializedName注解妙用

作者: 木溪bo | 来源:发表于2018-08-13 10:09 被阅读103次
现在前后端通信交互普遍采用的是JSON格式数据传输,因此就需要解析JSON数据了。而如果前后端沟通不多,难免造成数据格式不统一。在不想后台改动太多的前提下,这时候就需要前端去适应后台了,使用@SerializedName可以巧妙的解决这个问题。
   我一般都是使用Gson解析json数据
  //将流转换成字符串(工具类封装)
 String json = StreamUtils.stream2String(is);
 ApkCheckCodeBean apkCheckCodeBean = new Gson().fromJson(json, ApkCheckCodeBean.class);

解析的数据实体类

public class ApkCheckCodeBean {

    /**
     * downloadUrl : http://xxxxxx.apk
     * versionCode : 3
     * versionDes : 1.1.3版本发布了
     * versionName : 1.1.3
     */
    @SerializedName(value = "downloadUrl", alternate = {"downloadurl", "DownloadUrl", "Downloadurl"})
    private String downloadUrl;
    @SerializedName(value = "versionCode", alternate = {"versioncode", "VersionCode", "Versioncode"})
    private String versionCode;
    @SerializedName(value = "versionDes", alternate = {"VersionDes", "versiondes", "Versiondes"})
    private String versionDes;
    @SerializedName(value = "versionName", alternate = {"VersionName", "versionname", "Versionname"})
    private String versionName;

    public String getDownloadUrl() {
        return downloadUrl;
    }

    public void setDownloadUrl(String downloadUrl) {
        this.downloadUrl = downloadUrl;
    }

    public String getVersionCode() {
        return versionCode;
    }

    public void setVersionCode(String versionCode) {
        this.versionCode = versionCode;
    }

    public String getVersionDes() {
        return versionDes;
    }

    public void setVersionDes(String versionDes) {
        this.versionDes = versionDes;
    }

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }
}

@SerializedName(value = "downloadUrl", alternate = {"downloadurl", "DownloadUrl", "Downloadurl"})中有两个属性,value="默认key",alternate="别名key1,别名key1...",别名可以有多个,多个别名用“,”分隔。如此便降低了数据别名不统一造成的解析异常概率。

相关文章

网友评论

本文标题:Json解析中@SerializedName注解妙用

本文链接:https://www.haomeiwen.com/subject/ucsybftx.html