以前項目用到了gson對json和Java類之間互轉,如今將gson的配置總結一下。java
首先,建立gson對象之間,創建gsonbuilder對象,並配置json
// 不導出實體類中沒有用@Expose註解的屬性 gbuilder.excludeFieldsWithoutExposeAnnotation() // 支持Map的key爲複雜對象的形式 gbuilder.enableComplexMapKeySerialization() // 格式化date型 gbuilder.setDateFormat("yyyy-MM-dd HH:mm:ss:SSS") // 會把字段首字母大寫,注:對於實體上使用了@SerializedName註解的不會生效. gbuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE) // 設置字段屏蔽,屏蔽不想轉換的字段,ExList是String型的數組,設置此屬性時@Expose註解就失效了 gbuilder.setExclusionStrategies(new mExclusionStrategy(ExList))
gson轉化:數組
// 將JavaBean字符串轉換爲 JSON
String sUser = gson.toJson(user);
System.out.println(sUser);
// {"id":1001,"name":"張三"}
// 將JSON字符串轉換爲 JavaBean
UserBean user2 = gson.fromJson(sUser, UserBean.class);
System.out.println(user2.getId() + ", " + user2.getName());
// 1001, 張三ui
注意:在gson轉化的時候,若存在級聯的實體類,在輸出的時候要在hbm配置文件設置lazy=falsespa