@SerializedName注解

最近在和后台调试接口的时候看到后台返回的数据表示很无奈,如下所示:


{
	"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;
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@SerializedName是一个注解,用于在Java对象和JSON数据之间进行字段名的映射。它可以更改字段名,并提供备用名属性。通过使用@SerializedName注解,我们可以在解析JSON数据时将对应字段的值赋给Java对象的属性,同时在生成JSON数据时将Java对象的属性名转换为指定的字段名。 在引用中的示例中,@SerializedName注解被用于修改字段名,并提供了备用名属性。例如,当解析JSON数据时,如果字段名为"email_address"、"email"或"emailAddress"中的任意一个出现,都会将对应的值赋给属性。而在生成JSON数据时,属性名"userName"会被转换为"n"。这样可以通过Gson库实现字段名和属性名之间的映射。 在引用中的示例中,@SerializedName注解被用于将字段名"n"映射到属性"userName",字段名"p"映射到属性"password",字段名"s"映射到属性"sex"。这样,在解析JSON数据时,对应字段的值会被赋给相应的属性。同样地,在生成JSON数据时,属性的值会被转换为对应的字段名。 另外,在引用中的示例中,@SerializedName注解也可以用于定义反序列化的备用名称。它可以帮助我们处理一些特殊情况,比如字段名在不同的情况下可能有变化的情况。 总之,@SerializedName注解是一个有用的工具,可以在Java对象和JSON数据之间进行字段名的映射,以实现灵活的解析和生成JSON数据的过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [字段重命名@SerializedName](https://blog.csdn.net/m0_46350041/article/details/109184797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [auto-value-gson:AutoValue Extension添加Gson DeSerializer支持](https://download.csdn.net/download/weixin_42131439/16248240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值