文档章节

bootstrap table处理含有子集json的数据以及fastjson禁止循环引用的问题

CodingBear
 CodingBear
发布于 2015/12/12 16:15
字数 500
阅读 128
收藏 3

先简要介绍下项目:springmvc+hibernate框架,为了方便呈现数据前台使用了bootstrap的插件,使用的json是阿里巴巴的fastjson。

首先是bootstrap table呈现含有子json的json数据问题。官方demo里给出的json数据是酱紫:

但是我们从后台传值的json是含有子json字符串的,data-filed输入 username,editor.username等都无法呈现数据:

度娘输入bootstrap table json根本木有任何搜索结果,后来想到自己曾经用过的easyui的table ,搜索了下有相关博客介绍,于是按照类似easyui的table修改bootstrap,代码如下

这样最终证明是可以呈现数据的。

!但是测试时总是显示row.chiefeditor.username 为undefined。在控制台输出json数据时是以类似于这样的形式 {"$ref":"$.data[1]"}输出的。当时没想到是json循环引用js没有识别的问题,尝试各种结果后在度娘里输入js json $ref 后来发现是前端无法解析。于是开始搜索fastjson 禁止循环引用相关的博客,做了修改如下:

springmvc配置文件:

<!-- 启用spring mvc-->
<mvc:annotation-driven>
       <mvc:message-converters register-defaults="true">
              <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
              <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                     <property name="supportedMediaTypes">
                            <list>
                                   <value>application/json;charset=UTF-8</value>
                            </list>
                     </property>
                     <property name="features">
                            <list>
                                   <value>WriteMapNullValue</value>
                                   <value>QuoteFieldNames</value>
                            </list>
                     </property>
              </bean>
       </mvc:message-converters>
</mvc:annotation-driven>


Java代码:在对象转换为json时候禁止循环引用

JSONArray checkedAds=JSONArray.parseArray(JSON.toJSONString(checkedAdvers,SerializerFeature.DisableCircularReferenceDetect));

PS:关于配置文件,当时根据网上很多的博客给的方案去修改配置文件运行都会提示messageconvert冲突,又经历各种搜索,在度娘输入spring mvc fastjsonHttpMesageConverter配置抱着尝试的心态去运行,最终成功了。所以说尽信书不如无书,还是要自己多尝试实践。

最终的结果:

愉快的呈现了数据~~~



© 著作权归作者所有

共有 人打赏支持
CodingBear
粉丝 1
博文 3
码字总数 2271
作品 0
程序员
加载中

评论(1)

o
oo墨非oo
66666666666666666
【FastJSON】解决FastJson中“$ref 循环引用”的问题

【需求与环境描述】 0、开发环境 SSH,EasyUI,MySQL 1、需求要求: (1)首先获取所有的贷款订单数据,即List <LoanOrder>。 (2)然后从单个贷款订单实体LoanOrder去访问贷款人实体Loaner的信息...

SuShine
2016/07/28
41
0
解决fastjson内存对象引用/循环引用导致json中出现$ref

解决fastjson内存对象引用/循环引用导致json中出现$ref 赵伊凡's Blog2018-01-031 阅读 缓存java技术 目前公司有一部分数据使用的是类似于 redis 的一种自研 数据库 进行存储的。对于一般的对...

赵伊凡's Blog
01/03
0
0
fastjson发布1.1.3版本

Fastjson 1.1.3是一个重要的功能增强版本,在这个版本开始,fastjson支持循环引用,完善支持WriteClassName的特性,使得fastjson开始具备替换hessian和java serialize的能力。 支持循环引用。...

wenshao
2011/08/29
2.1K
4
解决fastjson内存对象重复/循环引用json错误

什么是重复/循环引用 简单说,重复引用就是一个集合/对象中的多个元素/属性同时引用同一对象,循环引用就是集合/对象中的多个元素/属性存在相互引用导致循环。 举例说明 重复引用 List<Objec...

寻知者
2016/12/20
191
0
还原json循环引用对象的一种办法

后端数据实体都是由hibernate生成的,与浏览器客户端交互json时,采用了alibaba FastJson库。 首先要说fastJson的确为众多json类库中数一数二的,api简单易用,性能强悍,测试完整,典型的国...

Spance
2013/08/02
7.4K
8

没有更多内容

加载失败,请刷新页面

加载更多

Apache Spark 2.3 重要特性介绍

本文翻译自:https://databricks.com/blog/2018/02/28/introducing-apache-spark-2-3.html 为了继续实现 Spark 更快,更轻松,更智能的目标,Spark 2.3 在许多模块都做了重要的更新,比如 St...

hblt-j
16分钟前
1
0
Git基本操作

Git基本操作 git add . git commit git commit -m "updata" git log查看日志 git checkout xxx 切换分支到xxx 常用命令 版本库管理 创建版本库 # 初始化版本库mkdir learngit && cd learng...

lslaiwy
19分钟前
1
0
ubuntu 彻底删除 mysql 然后重装 mysql

ubuntu 彻底删除 mysql 然后重装 mysql 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-......

关上越
22分钟前
1
0
Fabric.js高级点的教程3--添加遮罩和裁剪的方法

写这篇文章的时候我就要说一下了,这个遮罩和裁剪耗费了我真的是九牛二虎之力 裁剪的插件很多,无论你用原生JS,JQuery, Vue还是React.总能找到一款裁剪插件。今天我要说的是自己写一个截图功...

xmqywx
25分钟前
1
0
springboot 初始化不设置数据源 由接口动态设置数据源(传入ip 端口 数据库名称 账号 密码)

程序无需重启可以加个过滤器支持未设置数据库无法调用将配置存到property文件,也可存到缓存设置时需要一个工具类判断传入的数据库是否可连接等import org.apache.commo...

林伟琨
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部