Android之Gson解析中的@SerializedName注解

  1. Json&Gson简介
  • Json
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。
    Json百度百科
    主要包含以下两种数据结构:
    (1)键值对
    {key1:value1, key2:value2, …}
    其中key 为对象的属性,value 为对应的值。对应编程中的对象。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
    (2)无序值列表
    如数组,形如 [“java”, “javascript”, “vb”, …] 的索引结构。值的类型可以是任意类型。
  • Gson
    Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON数据转换为等效的Java对象。
    Gson的GitHub主页
  1. @SerializedName注解
    当我们使用Gson解析Json数据时,将Json里对应字段的值解析到Java对象里对应字段的属性里面。然而Json中的有些字段并不适合直接作为Java字段来命名,因此使用@SerializedName注解的方式来让Json字段和Java字段之间建立映射关系。

Json数据示例如下,表示当前天气状况:

"now":{
	"tmp":"29"
	"cond":{
		"txt":"阵雨"
		}
}

若不用注解的方式建立实体类:

public class Now{
	public String tmp;
	public Cond cond;
	public class Cond{
		public String txt;
	}
}

可以看出程序的可读性比较差,命名十分用户不友好,因此就需要用注解的方式来解决这一问题:

public class Now {
    @SerializedName("tmp")
    public String temperature;

    @SerializedName("cond")
    public More more;

    public class More{
        @SerializedName("txt")
        public String info;
    }
}

利用@SerializedName方式注解之后,用Gson解析的时候就会将Json数据中tmp对应的值赋值到temperature属性上,完美地将二者对应起来。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值