GSON:Google的GSON,在JSON的基础之上,强化JSON功能。
JSON & GSON 区别:
1、@SerializedName:指定该字段在序列化成 JSON 时的名称。
"w")
private int width;
(
2、GSON美化JSON格式化.
3、自定义规则:translateName,但@SerializedName一起用时,注解会覆盖translateName。
FieldNamingStrategy customPolicy = new FieldNamingStrategy() {
public String translateName(Field f) {
return f.getName().replace("_", "");
}
};
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingStrategy(customPolicy);
Gson gson = gsonBuilder.create();
UserNaming user = new UserNaming("Norman", "norman@futurestud.io", true, 26);
String usersJson = gson.toJson(user);
4、transient,在JavaBean的属性前添加该关键字,在生成JSON时,省略该属性
5、支持互转:
(1)从JSON反解析成JavaBean
import com.google.gson.Gson;
class TestJsonFromObject {
private int data1;
private String data2;
}
String json = "{'data1':100,'data2':'hello'}";
Gson gson = new Gson();
TestJsonFromObject obj = gson.fromJson(json, TestJsonFromObject.class);
(2)从JavaBean反解析成JSON
class TestObjectToJson {
private int data1 = 100;
private String data2 = "hello";
}
TestObjectToJson obj = new TestObjectToJson();
Gson gson = new Gson();
String json = gson.toJson(obj);
6、一次性为所有JSON日期字符串类型格式化日期
public void test() throws IOException {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd hh:mm:ss")
.create();
System.out.println(gson.toJson(new Date()));
}
7、对于集合类:List、Set……,GSON可以一 一对应
8、处理大JSON文件 => JSON & GSON - 读取 JSON 文件
9、待更新...