当前位置:网站首页>@SerializedName注解使用

@SerializedName注解使用

2022-07-05 09:41:00 沙漠一只雕得儿得儿

有时服务端返回给我们一些字段名不适合作为java bean的名称,我们可以使用@SerializedName注解,来给服务端返回的字段取别名。

例如下面服务端返回的json,1234是一堆无意义的名称,而我们需要明确1234每个字段的含义,这时取个别名就可以很方便后续的开发:

{
	"Result": {
		"State": "200",
		"Msg": "成功"
	},
	"Data": {
		"1": "100",
		"2": "CHECKED",
		"3": "UPDATE",
		"4": 201901021130,
		"5": 3.56
	}
}

在Android开发中,使用第三方Gson包解析json成对象时默认的是将json文件里对应字段,解析到java代码里的属性字段里面。

像Result标签可以将json数据解析成java对象,但是Data中的数据表示一脸懵,总不可能写一个这样的类吧?

 这样肯定是不行的,但是后台这样返回前端该怎么解析呢?

因为JSON中的一些字段可能不太适合直接作为Java字段来命名,因此这里使用了@SerializedName注解的方式来让JSON字段和Java字段之间建立映射关系

为了更加利于别人阅读代码,我们在写对应Java类时,就可以使用@SerializedName让代码变的更加友好。

/**
 * Created by ysp
 * on 2021/8/16
 */
public class TestBean {
 
    /**
     * 1 : 100
     * 2 : CHECKED
     * 3 : UPDATE
     * 4 : 201901021130
     * 5 : 3.56
     */
 
    @SerializedName("1")
    private String number;
    @SerializedName("2")
    private String isCheck;
    @SerializedName("3")
    private String status;
    @SerializedName("4")
    private long date;
    @SerializedName("5")
    private double percent;
 
    public String getNumber() {
        return number;
    }
 
    public void setNumber(String number) {
        this.number = number;
    }
 
    public String getIsCheck() {
        return isCheck;
    }
 
    public void setIsCheck(String isCheck) {
        this.isCheck = isCheck;
    }
 
    public String getStatus() {
        return status;
    }
 
    public void setStatus(String status) {
        this.status = status;
    }
 
    public long getDate() {
        return date;
    }
 
    public void setDate(long date) {
        this.date = date;
    }
 
    public double getPercent() {
        return percent;
    }
 
    public void setPercent(double percent) {
        this.percent = percent;
    }
}

@SerializedName注解_yushuangping的博客-CSDN博客_serializedname注解 

@SerializedName注解容错妙用_13468207的技术博客_51CTO博客

Android开发中Gson对象@SerializedName 注解的使用 - 简书

原网站

版权声明
本文为[沙漠一只雕得儿得儿]所创,转载请带上原文链接,感谢
https://buder.blog.csdn.net/article/details/125525975