Gson之GsonBuilder用法笔记
2015-09-14 15:42
155 查看
public GsonBuilder setFieldNamingStrategy(FieldNamingStrategy fieldNamingStrategy)
public interface FieldNamingStrategy { String translateName(Field var1); }
通过查看上面的接口可以看出来,这是传进去字段在生成json的时候改名字用的。
public GsonBuilder excludeFieldsWithModifiers(int… modifiers)
这个方法的作用是gson转换的时候排除掉指定的修饰符Modifiers,可选的类型从
java.lang.reflect.Modifier中得到,可以是Modifier.PUBLIC这个单个修饰符,也可以是Modifier.fieldModifiers()这样的组合修饰符。
public static int fieldModifiers() { return PUBLIC | PROTECTED | PRIVATE | STATIC | FINAL | TRANSIENT | VOLATILE; }
比如private等不输出为json,比如:
GsonBuilder excludeFieldsWithModifiers = gsonBuilder.excludeFieldsWithModifiers(Modifier.PRIVATE); Gson create = excludeFieldsWithModifiers.create();
String json2 = create.toJson(new Developer());
public GsonBuilder excludeFieldsWithoutExposeAnnotation()
这个方法表示解析的时候去掉JavaBean中没有@Expose注解的字段
public GsonBuilder addDeserializationExclusionStrategy(ExclusionStrategy strategy)
gson反序列化时采用的策略。
ExclusionStrategy的代码如下:
public interface ExclusionStrategy { boolean shouldSkipField(FieldAttributes var1); boolean shouldSkipClass(Class<?> var1); }
这两个方法返回值,来判断是否反序列化。
public GsonBuilder addSerializationExclusionStrategy(ExclusionStrategy strategy)
与上面的逻辑类似。
public GsonBuilder disableHtmlEscaping()
Gson使用时将一些字符自动转换为Unicode转义字符,比如把
{"s":"<"}转换成
{"s":"\u003c"},调用
disableHtmlEscaping以后就不会自动转换了。
public GsonBuilder setDateFormat(String pattern)
格式化Date类型数据时候的pattern,底层是SimpleDateFormat来操作的。
public GsonBuilder setDateFormat(int style)
style从
java.text.DateFormat中取
public GsonBuilder setDateFormat(int dateStyle, int timeStyle)
与上面类似
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter)
自定义序列化和反序列化的适配器
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) { $Gson$Preconditions.checkArgument(typeAdapter instanceof JsonSerializer<?> || typeAdapter instanceof JsonDeserializer<?> || typeAdapter instanceof InstanceCreator<?> || typeAdapter instanceof TypeAdapter<?>); if (typeAdapter instanceof InstanceCreator<?>) { instanceCreators.put(type, (InstanceCreator) typeAdapter); } if (typeAdapter instanceof JsonSerializer<?> || typeAdapter instanceof JsonDeserializer<?>) { TypeToken<?> typeToken = TypeToken.get(type); factories.add(TreeTypeAdapter.newFactoryWithMatchRawType(typeToken, typeAdapter)); } if (typeAdapter instanceof TypeAdapter<?>) { factories.add(TypeAdapters.newFactory(TypeToken.get(type), (TypeAdapter)typeAdapter)); } return this;
}
public GsonBuilder setLongSerializationPolicy(LongSerializationPolicy serializationPolicy)
设置对Long类型的变量,是解析成字符串还是解析为long类型,可以这样设置如下:
Gson gson = newGsonBuilder. setLongSerializationPolicy(LongSerializationPolicy.DEFAULT).create(),其中LongSerializationPolicy.DEFAULT为默认值,Long类型转换为Long型,LongSerializationPolicy.STRING为字符串型,就是把Long类型的值强制转换为字符串类型。
public GsonBuilder setFieldNamingPolicy(FieldNamingPolicy namingConvention)
如果设置FieldNamingPolicy.UPPER_CAMEL_CASE),会把字段首字母大写,注:对于实体上使用了@SerializedName注解的不会生效.
public GsonBuilder generateNonExecutableJson()
官方的说法是: Makes the output JSON non-executable in Javascript by prefixing the generated JSON with some special text。就是说在json前面加些特殊的文本,使其不能在Javascript中不能运行的json。
public GsonBuilder setPrettyPrinting()
生成格式化后的json。
相关文章推荐
- 在 iOS7中 uiscrollview 不可以滑动问题
- //16进制颜色(html颜色值)字符串转为UIColor
- iOS 欢迎页面的设计 以及UIFort.familyNames
- struct2获取request,session,以及显示
- UITableView学习笔记
- Win10 Build 10537预览版截图曝光 更容易激活
- request.getParameter("scoreNumber")根据什么取值
- UIGestureRecognizer手势
- 高仿金山《电池医生》首页一键省电UI动画效果
- Android 线程中更新UI
- 为UIBtton的文字添加下划线
- iOS学习笔记:UITableView想要的都有
- Jquey学习
- access and faccessat 按照实际用户Id和实际组ID进行文件权限测试
- This virtual machine is configured for 64-bit guest operating systems. However, 64-bit operation is
- media-query
- NGUI判断是否点击到UI控件
- Easyui-Datagrid—表头灵活拖动
- UIViewController生命周期及应用界面切换
- NSAttributedString UIKit Additions 参考