“$.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. Delphi6/7 中XML 文档的应用

    XML文档是新一代的Web数据格式.它可以用树的形式储存一切数据.下面介绍一下TXMLDocument控件的一些用法:已定义:XMLDoc: TXMLDocument;EncoderMIME: TId ...

  2. Delphi 7.0常用函数速查手册(磁盘文件类)

    在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数.字符串.数组操作函数.文件.磁盘操作函数.内存.指针操作函数.数学运算函数.日期函数. 在Delphi中调用函 ...

  3. 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站

    这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...

  4. Flutter学习笔记(2)--Dart语言简介

    Dart简介: Dart诞生于2011年10月10日,Dart是一种"结构化的web编程"语言,Dart虽然是谷歌开发的计算机编程语言,但后来被ECMA认定位标准,这门语言用于We ...

  5. pip与conda的区别

    pip和conda到底有什么不一样? 今天看到我的foreman开始报错去询问才发现.我们的python包管理工具已经从pip整体迁移到了conda..最近的迁移真的非常多..前端也在迁移打包 跟着发 ...

  6. 苹果二代TWS无线耳机AirPods调研

    产品介绍 苹果AirPods二代自从2018年9月份上市以来,到现在将近一年的时间了,据江湖传闻,苹果AirPods的总售卖个数,已经超过了5000W部,这样价格的TWS耳机,能够卖那么多的量,估计也 ...

  7. JRebel的优势与使用(基于IDEA)

    在平时的工作产出中,代码出现问题时往往要不停的修改测试其正确性,每次修改一部分代码都需要重启项目,这十分的耗时,对于企业大型项目来说你重启的时间够你去喝杯咖啡了,本篇博文主要就减少重启项目时间为目的来 ...

  8. Atlassian In Action - (Atlassian成长之路)

    Atlassian是我工作过程中,使用过的最满意的研发团队管理套装.使用的主要软件包括Jira Software,Confluence,Fisheye/Crucible.理论上还可以再加上Bitbuc ...

  9. linux上mysql MM(双主)架构及keepalived搭建

    master1 10.1.1.14 VIP 10.1.1.16master2 10.1.1.15 VIP 10.1.1.16 一.mysql MM配置1.修改master1的my.cnf# vi /e ...

  10. ajax 的登录认证

    在models中 先创建一个表 from django.db import models # Create your models here. class UserInfo(models.Model) ...