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 ...
随机推荐
- 【码云周刊第 23 期】Web 高效开发必备的 PHP 框架(从这里学起)good
码云项目推荐 1.项目名称:多功能 THinkPHP 开源框架 项目简介:使用 THinkPHP 开发项目的过程中把一些常用的功能或者第三方 sdk 整合好,开源供亲们参考,如 Auth 权限管理.支 ...
- MJPhotoBrowser 用法
一.使用方法: #import "MJPhotoBrowser.h" #import "MJPhoto.h" - (void)tapPhoto:(UIT ...
- java设计模式-单例(singleton)
单例模式,是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例.即一个类只有一个对象实例 如何保证对象唯一性呢? 思想: ...
- Tomcat常见问题[内存溢出,虚拟目录配置等](一)
一.Tomcat内存溢出的解决方法 内存溢出一般有如下三种常见的原因: OutOfMemoryError: Java heap space OutOfMemoryError: PermGen spac ...
- 如何有效预防XSS?这几招管用!!!
原文链接 预防XSS,这几招管用 最近重温了一下「黑客帝国」系列电影,一攻一防实属精彩,生活中我们可能很少有机会触及那么深入的网络安全问题,但工作中请别忽略你身边的精彩 大家应该都听过 XSS (Cr ...
- 【工具】读取proprtties工具类
获取properties内容: 基本的使用看网络上大多是这样的,使用时注意线程安全以及读写的实时性问题. 1.直接通过流读取(反射): InputStream inStream = this.get ...
- Python笔记【2】_列表学习
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #字符串:通常有单引号“'”.双引号“" ...
- Ruby中的常量:引号、%符号和heredoc
数值字面量 没什么好说的,唯一需要说明的是分数字面量:数值后加上一个后缀字母r表示分数字面量. # 整数字面量 0 1 100 10_000_001 # 千分位 # 浮点数字面量 0.1 1.0 1. ...
- javascript——原型与原型链
一.prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象. 例如: function Person(age) { this.age = ag ...
- SqlDataReader的用法 转自https://www.cnblogs.com/sunxi/p/3924954.html
datareader对象提供只读单向数据的快速传递,单向:您只能依次读取下一条数据;只读:DataReader中的数据是只读的,不能修改;相对地,DataSet中的数据可以任意读取和修改 01.usi ...