本文共 1454 字,大约阅读时间需要 4 分钟。
在搭建SSM框架的的时候,将Oracle数据库中的数据,最后在controller层变成了需要的list数据之后,要变成json数据
public String Pension() throws Exception{ // ModelAndView mv= new ModelAndView("pension2"); ListallPensions=pensionService.selectall(); // System.out.println(allPensions);// JSON jsonOfAllPension=(JSON) JSON.toJSON(allPensions); String str=JSON.toJSON(allPensions).toString();// mv.addObject("jsonOfAllPension", jsonOfAllPension); // String result=StringEscapeUtils.unescapeJava(str);// JSONObject jsonObject = new JSONObject(result); String result=str.replaceAll("\\\\", ""); System.out.println(result); return result;}
这里返回的是json字符串,会出现反斜杠问题。访问的路径是
所以一直在致力于解决java如何处理json数据的反斜杠问题。
这里借用一篇博客,总结的还是很好的
但是反斜杠问题在访问路径的时候,还是存在,在前台打印,后台打印的时候,数据格式是标准的,没有反斜杠。
这个反斜杠的问题。我估计的数据格式问题。使得最后我在echarts展示的时候,显示不了
所以我就投机取巧,直接将后台打印的数据格式,copy到一个数组中进行存放 (代码在javasrcipt中),jsp页面中
最后可以使得数据展示,在前台打印的时候是这样的:
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF8"%>养老金 ${pageContext.request.contextPath}/json
这个只是初步的展示。虽然说殊途同归,数据展示,请忽略这看着尴尬的数据,按道理说我要处理一番,将2018年的数据集合,2019年的数据集合,然后再显示,可能涉及到oracle 数据库 去重查询。
可是问题还是没有解决。
总结问题就是:
1.json从java后台中获取的数据,拿到的字符串格式是[{},{},{}],且控制台和浏览器alert展示的时候都是该格式。但是echart展示的时候,将数据分组,拿到的是undefined值
2.而将[{},{},{}]这个数据格式存放在JSP文件中的javasrcipt代码中的一个数组data的时候,然后再将这个data进行细分成四个组,然后echart展示,是OK的。也就是上图echart完美展示的情况。哈哈哈哈
3.这两种方式在前台打印的数据格式也是不一样的,ajax获取数据,前台打印是[{},{},{}],
而存放到数组data中前台打印的时候,数据格式是[object object]....
请大佬帮忙指点
转载地址:http://zzcii.baihongyu.com/