Gson转换无限循环处理
2015-09-21 14:55
204 查看
1.transient
对于有可能发生无限循环的变量前,加上以上标示即可。
2.还有方案2,例如有时候用,有时候不用,部分用啊的情况
3.Expected BEGIN_OBJECT but was STRING异常
一般是类的get,set方法不对,不然就是传的属性有问题。
对于有可能发生无限循环的变量前,加上以上标示即可。
2.还有方案2,例如有时候用,有时候不用,部分用啊的情况
//创建一个带过滤条件的gson对象 Gson gson = new GsonBuilder() .setExclusionStrategies(new ExclusionStrategy() { /** * 设置要过滤的属性 */ @Override public boolean shouldSkipField(FieldAttributes attr) { //我们只过滤User类的id属性,而Type类的id属性还是要输出的 boolean b = false; //如果当前属性所在的类是User的话,就使用regUser过滤 //否则就用regOther来过滤 if(attr.getDeclaringClass() == User.class) { b = regUser.contains("|" + attr.getName() + "|"); } else { b = regOther.contains("|" + attr.getName() + "|"); } //这里,如果返回true就表示此属性要过滤,否则就输出 return !b; } /** * 设置要过滤的类 */ @Override public boolean shouldSkipClass(Class<?> clazz) { //这里,如果返回true就表示此类要过滤,否则就输出 return false; } }).create();
3.Expected BEGIN_OBJECT but was STRING异常
一般是类的get,set方法不对,不然就是传的属性有问题。
相关文章推荐
- Hibernate-框架简述-1
- NoSQL数据库的四大分类及分析
- PHP 根据两点的经纬度计算距离
- BI Admin Tools和目录管理器的连接配置
- Android:控件AutoCompleteTextView 自动提示
- 【干货】前方高能!如何保障Python应用的高性能
- scala学习笔记(十五) 高等类型
- 将复选框是否选择对应的样式转换为标记字段传给后台的实现
- 【小知识点总结】如何获取到Android控件的高度
- iOS学习之iOS沙盒(sandbox)机制和文件操作(一)
- JS演示循环语句的用法
- 内核层与应用层通信详解
- 黑马程序员——Java基础语法(三)---数组
- 创建IOS静态库
- Struts2中的ModelDriven机制及其运用
- Android:布局单位换算
- hive将本地文件上传到文件系统出错
- Ubuntu用sudo apt-get install时出现“Failed to fetch”的解决办法
- 记录一次linux错误的修复(linux启动出现UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY)
- JS 基本语法应用