- 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主页
- @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属性上,完美地将二者对应起来。