SpringMvc返回JSON出现"$.result.currentLevel"
“$.result.currentLevel”
问题描述
使用SpringMvc返回一个json数据的时候,会在产生的结果中出现如下的问题:”$.result.currentLevel”
{
"code": 200,
"msg": "请求成功",
"result": {
"currentLevel": {
"code": "20180417543114",
"createDate": 1526528076000,
"growup": 600,
"icon": "http://192.168.1.128:8080/pic/level-3.png",
"id": "31feff3a04c84ade99287f862bcfaa9b",
"isSys": "0",
"levelName": "王者会员",
"levelNum": 4,
"rebate": 5,
"setid": "c7a29d3f58ea4c6588a471f02fb32cd4",
"sort": 2
},
"maxLevel": {
"$ref": "$.result.currentLevel"
},
}
}
问题原因
由于被转换为json的对象存在引用
java代码:
MembersysLevel entity = new MembersysLevel();
entity.setCode();
List<MembersysLevel> membersysLevelList = membersysSetService.getLevels(entity);
MembersysLevel currentLevel = new MembersysLevel();
int currentLevelIndex = 0;
for (int i = 0, size = membersysLevelList.size(); i < size; i++) {
MembersysLevel membersysLevel = membersysLevelList.get(i);
if (resultBqUsers.getLevelId().equals(membersysLevel.getId())) {
//
currentLevel = membersysLevel;
currentLevelIndex = i;
break;
}
}
int maxLevelIndex = membersysLevelList.size() - 1;
MembersysLevel maxLevel = membersysLevelList.get(maxLevelIndex);
//上一个
MembersysLevel preMembersysLevel = new MembersysLevel();
//
if (currentLevelIndex + 1 < membersysLevelList.size()) {
preMembersysLevel = membersysLevelList.get(currentLevelIndex + 1);
}
return ResultBean.success()
.setResult("currentLevel", currentLevel)
.setResult("maxLevel", maxLevel)
.setResult("preMembersysLevel", preMembersysLevel)
.setResult("bqUsers", resultBqUsers);
解决的办法
将被引用的对象复制到一个新的地址,然后再去转换为json。即可
在上述代码中,会出现 maxLevel == currentLevel 这种现象,所以在最后就会出现json串的错误现象。我们可以通过java对象克隆的方式来进行解决。
MembersysLevel cloneMaxLevel = null;
if (maxLevel == currentLevel) {
//如果相等 那么clone
cloneMaxLevel = (MembersysLevel) currentLevel.clone();
}
水平有限,个人见解,如有错误,欢迎指正。博主QQ:337081267
SpringMvc返回JSON出现"$.result.currentLevel"的更多相关文章
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- SpringMVC返回Json,自定义Json中Date类型格式
http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...
- 配置SpringMVC返回JSON遇到的坑
坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar ...
- SpringMVC返回JSON数据时日期格式化问题
https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring 在运用SpringMVC框架开发时,可 ...
- springmvc返回json字符串中文乱码问题
问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...
- SpringMVC返回JSON方案
SpringMVC已经大行其道.一般的,都是返回JSP视图.如果需要返回JSON格式,我们大都掌握了一些方法. 在ContentNegotiatingViewResolver之前,一般使用XmlVie ...
- SpringMVC返回json的问题
在使用springmvc的时候,如果返回值是String, 返回一个json的字符串,在js里面接收会有问题,不能直接当成json使用,要通过eval来转成json. 就像你在js里面直接定义 var ...
随机推荐
- FMX App的Application的事件(各种手机的全局按键)
直接上代码,还有条经验就是SetApplicationEventHandler可注册多个事件方法. unit Unit6; interface uses System.SysUtils, Syste ...
- 前端开发在手机UC浏览器上遇到的坑
1.user-scalable问题 写手机页面都会加一个meta标签 <meta content="width=device-width, initial-scale=1.0, max ...
- ElasticSearch搜索引擎的入门实战
1.ElasticSearch简介 引用自百度百科: ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elas ...
- 分享Sql Server 2008 r2 数据备份,同步服务器数据(二.本地发布,订阅)
上一篇文章中写到了数据库的本地备份,这一篇主要分享一下关于不同服务器的数据备份,主要是使用sql server中的本地发布,本地订阅功能,在数据库的读写分离中,也会经常性的用到这个功能. 复制-> ...
- JCS学习记录 --Java Caching System
Java Caching System--JCS 缓存工具 //jcs版本 jcs-1.3.jar //jcs--cache.ccf缓存配置文件 cache.ccf //所依赖的jar包concurr ...
- JavaWeb入门_模仿天猫整站Tmall_JavaEE实践项目
Tmall_JavaEE 技术栈 Servlet + Jsp + Tomcat , 是Java Web入门非常好的练手项目 效果展示: 模仿天猫前台 模仿天猫后台 项目简介 关联项目 github - ...
- mysql-8.0-winx64安装以及修改密码
一.下载安装包(https://dev.mysql.com/downloads/mysql/) 二.添加my.ini配置文件 打开刚刚解压的文件夹 C:\mysql-8.0.16-winx64,在该文 ...
- JSP数据交互(二)
1.application内置对象 application实现用户之间的数据共享 void setAttribute(String key,Object value) 以key/value的形式保存对 ...
- Ruby中的常量:引号、%符号和heredoc
数值字面量 没什么好说的,唯一需要说明的是分数字面量:数值后加上一个后缀字母r表示分数字面量. # 整数字面量 0 1 100 10_000_001 # 千分位 # 浮点数字面量 0.1 1.0 1. ...
- HDU 3081:Marriage Match II(二分图匹配+并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意:有n个男生n个女生,他们只有没有争吵或者女生a与男生A没有争吵,且女生b与女生a是朋友,因此女生b也 ...