文档章节

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

CodingBear
 CodingBear
发布于 2015/12/12 16:15
字数 500
阅读 136
收藏 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内存对象重复/循环引用json错误

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

寻知者
2016/12/20
191
0
fastjson发布1.1.3版本

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

wenshao
2011/08/29
2.1K
4
使用fastjson时出现$ref: "$.list[2]"的解决办法(重复引用)

最近下做成绩分析的功能的时候,出现了$ref: "$.list[2]"的情况。 然后我查了一下出现这种情况的原因和解决办法。 出现$ref: "$.list[2]"的原因是因为循环引用/内存对象重复 那么什么是重复/...

小黄狗
10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

重构系统的套路-面向对象设计原则

前言 一讨论系统重构,很多人不明所以的就开始画各种架构图,写各种高可用,高并发设计方案,其实不知道很多系统的腐朽是从代码失控开始的,所以重构系统之前,架构师需要深谙面向对象设计之...

春哥大魔王的博客
5分钟前
0
0
Private Cloud和On-Premise区别

大家常常听到Private Cloud和On-Premise两个术语,下面通过相关背景介绍区分两者的差别: Private Cloud定义 维基百科云计算 词条中解释了Private Cloud,其含义为“Private cloud is cloud ...

突突突酱
5分钟前
0
0
Linux-ubuntu学习(第一天)

Linux第一天 1.Linux与Windows的区别 Windows是桌面OS。Linux是作为服务器的OS。Linux作为服务器是更安全更稳定的。 2.虚拟机的理解 学习java的时候有个java虚拟机JVM。如果想要在windows上运...

柠檬果过
16分钟前
0
0
以太坊应用开发接口:JSON RPC API

以太坊应用开发接口指的是以太坊节点软件提供的API接口,去中心化应用可以利用这个接口访问以太坊上的智能合约。以太坊应用开发接口采用JSON-PRC标准,通常是通过HTTP或websocket提供给应用程...

汇智网教程
25分钟前
3
0
排序--二分插入排序

二分插入排序是对直接插入排序的一个优化,在排序--直接插入排序中已经分析过直接插入排序的最坏时间复杂度是平方级别的,二分插入排序则是通过二分查找对寻找插入位置进行了优化,在找到插入...

FAT_mt
36分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部