慕課網《JSON快速入門(Java版)》筆記json
項目中用的多爲JsonObjecty一類的...然而,Gson更爲強大!數組
Gson gson = new Gson(); String user = gson.toJson(new User("xiaoming")); //{"name":"xiaoming"}
能夠經過註解修改輸出的屬性名,更爲安全。安全
class User{ @SerializedName("NAME") private String name; ... } //{"NAME":"xiaoming"}
也能夠經過builder構建json,添加更多功能。ui
GsonBuilder gsonBuilder = new GsonBuilder(); //修改輸出格式 gsonBuilder.setPrettyPrinting(); //修改輸出字段 gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy(){ public String translateName(Field f){ return f.getName() + "-123"; } }); Gson gson = gsonBuilder.create();
還有一個特殊的關鍵字。code
class User{ //輸出時json中不會包含這個字段 private transient String ignore; }
Gson能夠直接將數組映射到集合,也能夠帶日期轉換,解析方法以下,和net.sf.json相同,只不事後者須要一個jsonConfig。orm
class User{ private Date date; private List<String> list; ... } Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); User user = gson.fromJson(userJson, User.class);