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 ...