博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈使用echarts过程中踩过的坑
阅读量:5145 次
发布时间:2019-06-13

本文共 2438 字,大约阅读时间需要 8 分钟。

 

小结:

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;    }

 

最后可以看看最终出来的效果图如下:

 

 

转载于:https://www.cnblogs.com/30go/p/5719208.html

你可能感兴趣的文章
Eclipse debug 调试的几点技巧
查看>>
生僻姓(多音字姓)
查看>>
数值溢出(arithmetic overflow)问题与解决方案
查看>>
dot 语法全介绍
查看>>
Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
查看>>
「图形学」直线扫描——Bresenham算法改进了中点Bresenham算法?
查看>>
jQuery 给div绑定单击事件
查看>>
Exceptionless 生产部署笔记
查看>>
有关快速幂取模
查看>>
转 ObjExporter Unity3d导出场景地图寻路
查看>>
Linux运维必备工具
查看>>
Ubuntu配置ssh及vnc
查看>>
Ant 设置http代理
查看>>
Kinect学习(3)Kinect for Windows SDK资料下载
查看>>
Java入门——第七天
查看>>
HTML5 Audio时代的MIDI音乐文件播放
查看>>
明确工作职责的重要性
查看>>
ajax方法总结
查看>>
web基础,用html元素制作web页面
查看>>
Spring注解使用和与配置文件的关系
查看>>