GSON:Google的GSON,在JSON的基础之上,强化JSON功能。
JSON & GSON 区别:
1、@SerializedName:指定该字段在序列化成 JSON 时的名称。
@SerializedName("w") private int width;
2、GSON美化JSON格式化.
3、自定义规则:translateName,但@SerializedName一起用时,注解会覆盖translateName。
FieldNamingStrategy customPolicy = new FieldNamingStrategy() { @Override 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日期字符串类型格式化日期
@Test 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、待更新...