`

永远不要自己拼装json

阅读更多

今天项目出现一个非常怪的现象,使用spring拦截的异常有时候显示不出来的问题,现在将原因和解决方案记录下,spring的拦截代码如下:

if(accept.indexOf("application/json")>-1){
			return super.getModelAndView("errors/ajax/500", ex, request);
		}


500页面的代码如下:

<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>{"errorCode":-1,"errorMsg":"${exception.message}"}


返回的错误信息如下:

{"errorCode":"-1","errorMsg":"错误代码:-20002
错误信息:ORA-20002: 3103: 项目 CUXECSWF/10888CUXECSWF120518150833 的属性 WF_NOTE 不存在。"}


放眼望去好像没有什么问题,然后就是不调用ajax的回调函数,最后没有办法,在后端生成了下json,然后打印出来,发现了问题,后端生成json的代码如下:

Map<String,String> errors = new HashMap<String,String>();
			errors.put("errorCode", "-1");
			errors.put("errorMsg", ex.getMessage());
			log.info(JSONObject.fromObject(errors).toString())


然后用这个生成的json是下面的代码:

{"errorCode":"-1","errorMsg":"错误代码:-20002\r
错误信息:ORA-20002: 3103: 项目 CUXECSWF/10888CUXECSWF120518150833 的属性 WF_NOTE 不存在。"}


所以之前在前端用jsp拼装的json是有问题的,最后将代码修改了下,在后端生存json后传递到前端,代码如下:

Map<String,String> errors = new HashMap<String,String>();
			errors.put("errorCode", "-1");
			errors.put("errorMsg", ex.getMessage());
			
			request.setAttribute("errorJson", JSONObject.fromObject(errors).toString());
			return super.getModelAndView("errors/ajax/500", ex, request);

<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>${errorJson}


这样就解决了这个问题,随着json的越来越普遍,虽然格式很简单,但是自己拼装的在不经意间就有问题。
0
1
分享到:
评论

相关推荐

    Java基本数据转换成Json代码

    通过运行这个程序,你可以更直观地理解这些转换方法,并将其应用到自己的项目中。在进行实际开发时,还需要注意错误处理,例如检查输入是否有效,以及在转换过程中可能出现的异常。 总之,理解和掌握Java中的JSON...

    echarts 全国以及各省市的地图数据js与json合并版下载

    在本压缩包文件中,包含的是ECharts3中关于全国及各省市地图数据的JS与JSON格式的资源,这些资源对于在ECharts中绘制中国地图及其下属行政区划非常有用。 首先,我们要理解JS(JavaScript)和JSON(JavaScript ...

    NetHelper_C#帮助类HtmlHelper_JSON_PostJson_

    标题 "NetHelper_C#帮助类HtmlHelper_JSON_PostJson_" 概述的是一个C#编程中的网络辅助类集合,其中包含了处理HTML、JSON数据以及POST请求的相关功能。这个工具集可能是为了方便开发者在进行Web开发时,高效地进行...

    Java数据格式转换成json

    ### Java 数据格式转换成 JSON 的全面解析 #### 一、JSON 概述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言...

    json-template:一个json编辑器

    JSON TEMPLATE 可视化配置工具 为什么做JSON TEMPLATE 前端组件越来越多,组件的配置一般都是JSON格式的。有些面向用户展示的组件,很多时候...编写组件demo配置页面,让用户自己动手修改组件的展示。 可以做到前后端

    python 操作json文件

    解读字符串拼装成json写入文件,方便其他语言解析数据

    解决javascript组装json的繁琐问题

    本篇文章将探讨如何解决这个问题,通过使用内部的javabean模式和JavaScript的原型链特性来简化JSON数据的拼装。 首先,理解JavaScript中的javabean模式。在Java中,javabean是一种具有getter和setter方法的对象,...

    TBM后配套管片拼装机建模及分析

    TBM后配套管片拼装机是一种用于隧道掘进机械(Tunnel Boring Machine, TBM)的配套设备,它主要用于隧道施工中管片的自动拼装。管片是隧道衬砌的重要组成部分,拼装机能够将预制的管片按照设计要求拼装成环状,以...

    易语言SQL拼装1.1 链式编程, 拼装SQL方法

    于是决定用易语言模仿一个, 这个版本只支持 "生成拼装SQL", 下次准备结合ad0o对象. 允许直接操作数据库。制作这么一个东西的初衷是为了 "更快更高效的开发程序", 我们往往在SQL上耽搁了太多时间. 并不是它难. 而是...

    小颗粒积木拼装积木图纸免费电子说明书7款

    - 通过电子说明书,用户不仅可以按照指示拼装,还可以尝试自己的创意,改变模型或设计全新的积木结构。 - 与全球的积木爱好者交流,分享经验和成果,提升拼装技巧和创新能力。 总的来说,“小颗粒积木拼装积木...

    SQL语句拼装工具V2

    写java程序时用来拼装sql语句时使用的小工具,在.net 4.0环境下运行。 跟前一版本比较,增加了前缀和空格位置的自定义,并增加了一个配置文件,保存自定义项 例如将 select a, b, c from abc where a like('3') ...

    钢网架结构拼装工程交底记录.doc

    钢网架结构拼装工程交底记录.doc

    11款乌式木质机械传动模型(可动拼装玩具)图纸 平面激光雕刻格式

    标题中的“11款乌式木质机械传动模型(可动拼装玩具)图纸”涉及到的知识点包括: 1. 机械传动模型:这是关于机械工程领域的一种教育或娱乐工具,通过模拟真实的机械结构,帮助人们理解机械设备的工作原理。这些模型...

    Solidworks优化液压支架焊接拼装工艺

    在制作焊接工艺的过程中,利用Solidworks的三维建模功能,模拟复杂大型焊件的拼装过程。进而检测拼装过程中存在的问题:各个零件的焊缝是否干涉、焊缝的焊接位置、焊接的难易程度,最后合理地安排焊接顺序、焊接位置,...

    基于PLC的盾构拼装机举升油缸同步控制.pdf

    而盾构拼装机作为盾构机的主要组成部分,负责隧道的衬砌作业,包括管片的拼装和提升等关键动作。 在盾构拼装机的众多功能中,举升油缸的同步控制是实现管片精确拼装的关键技术之一。传统的拼装机举升操作多依赖于...

    钢结构预拼装.rar

    钢结构预拼装是建筑工程中一个重要的工艺流程,特别是在大型工业建筑、桥梁、体育馆等钢结构工程中,预拼装是确保整体工程质量的关键步骤。这个过程涉及到的设计、施工、检验等多个环节,对于提高工程效率和保障安全...

    钢网架结构拼装.doc

    钢网架结构拼装 钢网架结构拼装是指对钢网架结构的组装和连接,包括钢网架螺栓球节点、焊接球节点、焊接钢板节点等。这里我们将对钢网架结构拼装的相关知识点进行详细的介绍。 2.1 材料要求 钢网架结构拼装中使用...

    钢构件预拼装工程检验批质量验收记录.doc

    钢构件预拼装工程检验批质量验收记录.doc

    参考资料-玻璃钢半球形屋顶分块拼装施工法.zip

    《玻璃钢半球形屋顶分块拼装施工法》是一个重要的参考资料,主要涉及建筑行业中玻璃钢材料在半球形屋顶建设中的应用。玻璃钢,全称为玻璃纤维增强塑料,是一种复合材料,因其轻质高强、耐腐蚀性好、设计灵活等特性,...

Global site tag (gtag.js) - Google Analytics