“$.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"的更多相关文章

  1. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  2. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  3. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  4. SpringMVC返回Json,自定义Json中Date类型格式

    http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...

  5. 配置SpringMVC返回JSON遇到的坑

    坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar ...

  6. SpringMVC返回JSON数据时日期格式化问题

    https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring   在运用SpringMVC框架开发时,可 ...

  7. springmvc返回json字符串中文乱码问题

    问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...

  8. SpringMVC返回JSON方案

    SpringMVC已经大行其道.一般的,都是返回JSP视图.如果需要返回JSON格式,我们大都掌握了一些方法. 在ContentNegotiatingViewResolver之前,一般使用XmlVie ...

  9. SpringMVC返回json的问题

    在使用springmvc的时候,如果返回值是String, 返回一个json的字符串,在js里面接收会有问题,不能直接当成json使用,要通过eval来转成json. 就像你在js里面直接定义 var ...

随机推荐

  1. 麻省理工的 Picture 语言:代码瘦身的秘诀

    直击现场 如今,机器学习算法已经进入了主流的计算机,而麻省理工学院正在研究一款让每日的编程变得更加简单的技术. MIT 研究者将在六月发布一款新的叫做 Picture 的编程语言,当计算机在视频或者图 ...

  2. xe5 firemonkey关闭应用程序

    在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为: uses   ...

  3. shell多线程之进程间通信(3)

    之前的文章依赖是1对1或1多对的,但每个任务的前置任务都只有1个. 本文的核心在于一个任务依赖于多个任务的执行完成,如上图所示,这个任务就是fact,只有new和dviduser两个任务都完成的情况下 ...

  4. sso和oauth2.0的简单了解学习

    sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...

  5. Tido 习题-二叉树-树状数组实现

    题目描述 这就是一个简单的树状数组入门题 可以动态地进行区间和查询 随时可能会进行更新   #include<iostream> #include<cstdio> #inclu ...

  6. 10-pymysql的应用

    import pymysql # user = input('请输入用户名:') # pwd = input('请输入密码:') # 1.创建连接 conn = pymysql.connect(hos ...

  7. Hadoop编程踩坑

    Hadoop踩坑 在hadoop所有组件编程中,遇到在Windows下运行程序出现 java.io.IOException: Could not locate executable null\bin\ ...

  8. 【Zookeeper01】ubuntu下安装zookeeper单例以及集群

    参考链接:http://zookeeper.apache.org/ https://www.cnblogs.com/lyhc/p/6560993.html 系统: 乌班图16.04 虚拟机(zk一般要 ...

  9. 在java项目启动时就执行某操作

    在java启动时大概有四种,此处只介绍3种 1.在启动的方法上使用通过@PostConstruct方法实现初始化bean进行操作 2.通过bean实现InitializingBean接口 @Overr ...

  10. CI框架注意

    1.在ci框架中,如果想继承自己写的控制器,从而不继承CI_Controller,可以在application/core中定义控制器,从而就可以在controllers中的控制器继承. 2.在ci框架 ...