之前项目用到了gson对json和Java类之间互转,现在将gson的配置总结一下。
首先,创建gson对象之间,建立gsonbuilder对象,并配置
// 不导出实体类中没有用@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, 张三
注意:在gson转化的时候,若存在级联的实体类,在输出的时候要在hbm配置文件设置lazy=false