谈谈使用echarts过程中踩过的坑
小结:
1. 使用jquery获取json对象遇到的问题
由于自己对ajax用的还不熟练,之前都是拷贝别人的代码拿来用的,这次自己写的时候倒是碰到好多麻烦一一列举如下:
1.1 在$ 与ajax之间还需要有个点号,即 $.ajax({...... });
1.2 在返回值那里对于返回类型是text或是json格式时,不知道哪种使用eval,哪种使用 (.属性)来解析,正确方式如下
当返回类型是text时,使用eval解析,书写方式如下
var obj = eval("(" + data + ")") ;
var title = obj.title;
当返回类型是json格式时,直接使用点号即可:
var title = data.title;
2. 在java程序中将对象转换为JSON格式遇到的问题
2.1 使用以下的代码将对象转换为json格式时会出现空的属性值显示出来了。
JSONObject json = JSONObject.fromObject(option);
2.2 使用以下的代码将对象转换为json格式时空的属性值就不会显示了。但是即使这样也会产生3中的顺序个问题。
String json = JSON.toJSONString(option);
3. java中将对象转换为json字符串时排列顺序问题
使用2.2的方法虽然转换的时候空的属性值不会出现了,但是排序顺序并不是按照对象加载的先后顺序来输出的。这个感觉比较奇怪。
网上查询了下,由于json是使用HashMap容器的,所以是无序的。所以网上找到别人的类的解决方法来重写了json的toString方法。
粘贴如下,供参考。
    public static String format(Object object) {
        Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
        JsonParser jp = new JsonParser();
        JsonElement je = jp.parse(gson.toJson(object));
        String prettyJsonString = gson.toJson(je);
        //简单处理function
        String[] lines = prettyJsonString.split("\n");
        lines = replaceFunctionQuote(lines);
        StringBuilder stringBuilder = new StringBuilder();
        for (String line : lines) {
            stringBuilder.append(line);
        }
        return stringBuilder.toString();
    }
/**
* 处理字符串中的function和(function(){})(),除{}中的代码外,其他地方不允许有空格
*
* @param lines
* @return
*/
public static String[] replaceFunctionQuote(String[] lines) {
boolean function = false;
boolean immediately = false;
for (int i = 0; i < lines.length; i++) {
String line = lines[i].trim();
if (!function && line.contains("\"function")) {
function = true;
line = line.replaceAll("\"function", "function");
}
if (function && line.contains("}\"")) {
function = false;
line = line.replaceAll("\\}\"", "\\}");
} if (!immediately && line.contains("\"(function")) {
immediately = true;
line = line.replaceAll("\"\\(function", "\\(function");
}
if (immediately && line.contains("})()\"")) {
immediately = false;
line = line.replaceAll("\\}\\)\\(\\)\"", "\\}\\)\\(\\)");
}
lines[i] = line;
}
return lines;
}
最后可以看看最终出来的效果图如下:

谈谈使用echarts过程中踩过的坑的更多相关文章
- 使用ffmpeg视频编码过程中踩的一个坑
		今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,非常多时候一旦思维定势真的挺难突破的.以下是不对的编码结果: ... 
- spring-data-redis 使用过程中踩过的坑
		spring-data-redis简介 Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, ... 
- NetCore部署到Linux服务器+Supervisor的步骤及过程中踩过的坑
		本文作备忘使用 服务器配置: 下面是所有操作的具体步骤: 1.安装nginx 参考 1.1 添加源:默认情况Centos7中没有Nginx源,最近Nginx官网提供了Centos的源地址. sud ... 
- 【spring】使用spring过程中踩到的坑
		这里简单记录一下,学习spring的时候碰过的异常: 异常:org.springframework.beans.factory.BeanDefinitionStoreException: Unexpe ... 
- 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑
		<Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ... 
- Hive使用过程中踩过的坑
		hive启动时错误1 Cannot execute statement:impossible to write to binary long since BINLOG_FORMAT = STATEME ... 
- kafka 并发数配置过程中踩到的坑 InstanceAlreadyExistsException
		] WARN org.apache.kafka.common.utils.AppInfoParser- Error registering AppInfo mbean javax.management ... 
- 项目中踩过的坑之-sessionStorage
		总想写点什么,却不知道从何写起,那就从项目中踩过的坑开始吧,希望能给可能碰到相同问题的小伙伴一点帮助. 项目情景: 有一个id,要求通过当前网页打开一个新页面(不是当前页面),并把id传给打开的新页面 ... 
- ng-zorro-antd中踩过的坑
		ng-zorro-antd中踩过的坑 前端项目中,我们经常会使用阿里开源的组件库:ant-design,其提供的组件已经足以满足多数的需求,拿来就能直接用,十分方便,当然了,有些公司会对组件库进行二次 ... 
随机推荐
- MVC5-6 帮助类
			视图帮助类 HtmlHelper HtmlHelper给我们封装了大量的常用方法,使我们的开发更具高效.那么其中有哪里是我们常用的呢? BingForm 生成form表单 上图简单的使用了Html.B ... 
- Loadrunner关联取参及设置检查点
			Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 web_reg_save_param("sign", "LB=m ... 
- python增删改查(四)
			###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增 n ... 
- Python ValueError: IO operation on closed file
			ValueError IO operation on closed file表示处理了已经被关闭的数据,在python 中 with语句的上下文会帮助处理,也就是说,当python的处理代码不对齐的时 ... 
- JavaWeb---总结(十一)使用Cookie进行会话管理
			一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ... 
- Cross-Site Scripting(XSS)简介
			最近才开始研究HTML以及安全问题.如果有什么说得不对的地方,望请指出. 在网络应用安全中,XSS可能是最常见,范围最大,所包含攻击方法最多,同时也是最难以理解的一种攻击.在OWASP所列出的十大网络 ... 
- css010 css的transform transition和animation
			css010 css的transform transition和animation 看着没有一个能想起他们是干什么的.. 1. Transform Transform(变形) r ... 
- WinForm------GridControl控件中使用SearchLookUpEdit控件的方法
			1.在数据库添加两张表,拥有主外键关系 主键表: 外键表: 2.往工具栏里拖出GridCont控件,并增加相应的列,这里对"省份"进行修改,"FileName" ... 
- linux 开机启动过程详解
			Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ... 
- Flash Builder 4.7 破解
			http://litech.diandian.com/post/2013-03-22/40049178994 Adobe Flash Builder 4.7 For Mac 破解 和Photoshop ... 
