文档章节

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

CodingBear
 CodingBear
发布于 2015/12/12 16:15
字数 500
阅读 123
收藏 3
点赞 1
评论 1

先简要介绍下项目: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 ⋅ 0

解决fastjson内存对象引用/循环引用导致json中出现$ref

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

赵伊凡's Blog ⋅ 01/03 ⋅ 0

fastjson发布1.1.3版本

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

wenshao ⋅ 2011/08/29 ⋅ 4

解决fastjson内存对象重复/循环引用json错误

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

寻知者 ⋅ 2016/12/20 ⋅ 0

还原json循环引用对象的一种办法

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

Spance ⋅ 2013/08/02 ⋅ 8

fastjson生成JSON字符串的时候出现$ref

转载自:http://wuzhuti.cn/201426!826!05!130202.html 可以通过选项 DisableCircularReferenceDetect来禁止循环引用检测: JSON.toJSONString( yourObject, SerializerFeature.DisableCirc......

Atom_me ⋅ 2015/12/10 ⋅ 0

使用fastjson中遇到的两个问题$ref

fastjson出现$ref 是由于循环引用引起的,比方说返回的json对象为空,而你要去引用对象的属性,这时候就无法获得了,会出现这样的引用标识,可以这样解决JSONObject.toJSONString(content, ...

writeademo ⋅ 2016/10/21 ⋅ 0

eric_1989/jfire-codejson

Jfire-codejson框架 标签: 最高性能 Json [TOC] ##框架优点 性能强劲 codejson是迄今为止最为强大的json框架.性能为fastjson的2.1倍,jackson2的1.8倍,gson的6.7倍。下图为基准测试数据 自由...

eric_1989 ⋅ 2015/11/15 ⋅ 0

从循环引用到hibernate的游离化

问题描述: 列表页面,50多条数据只显示3条,其他的也显示出来了,不过全部都是空白,差点哭晕在厕所 然后debug断点进去看,发现好多的json数据长这个样子的 "dept":{"$ref":"$[0].dept" (这...

yope ⋅ 2015/03/18 ⋅ 4

fastjson问题汇总

1、返回json有部分数据有bug,转换json异常$ref,如:“奶粉” || 已解决 // 解决循环引用,对应的配置见spring-web.xml 解决方式1: JSONObject.toJSONString(list, SerializerFeature.Disa...

菜蚜 ⋅ 2015/06/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 37分钟前 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 42分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 45分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 55分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部