最近在和后台调试接口的时候看到后台返回的数据表示很无奈,请看:
{
"Type": 6,
"Result": {
"State": "1",
"Msg": "成功"
},
"Data": {
"1": 1000000001,
"2": 2800,
"3": "UPDATE",
"4": 201901021130,
"5": 2854,
"6": 2,
"7": 2.58,
}
}
像Result标签可以将json数据解析成java对象,但是Data中的数据表示一脸懵逼
总不可能写一个类吧?
其实动动脚指头就觉得肯定是不行的(脚指头也是头,写出来是为了让一些执着的人看看)
但是后台这样返回前端该怎么解析?这就切入了今天要记录的SerializedName注解了,截取代码:
首先说一下SerializedName的主要作用:属性重命名,可以将json中的属性名转为我们自己自定义的属性名
其次@SerializedName注解提供了两个属性,上面用到了其中一个'value',别外还有一个属性'alternate':接收一个String数组
alternate数组中出现任意一个属性名都可以转换为自定义的属性,如果出现多个则以最后一个为准
package com.example.mytestdemo1.bean;
public class TestPojo {
@SerializedName("1")
private int totalAccount;
@SerializedName("2")
private int numIns;
@SerializedName("3")
private String type;
@SerializedName("4")
private long time;
}
(注解的元素名为value,因此我们使用的时候可以直接使用:@SerializedName(值))
这样一解析,就可以转换为自定义的属性了
有时候后台也有可能改个字段名,这样我们可以用同样的方法解决,前端的代码就不要进行更改了
加油,日常自我鼓励