关闭

JSON-lib 使用过程中将一个很长的字符串 转换成 json 对象时 ,耗时太久的解决方式。

标签: JSON-lib
716人阅读 评论(0) 收藏 举报
分类:

平时处理的字符串都很短,但这次遇到了 服务器返回的一个很长的json格式的字符串,如下:

String response = {"response":{"isc_dataFormat":"json","status":"0","userName":"admin","language":"zh-CN","userIp":"10.74.206.43","componentId":"isc_PageListTable_2","dataSource":"isc_PageRestDataSource_3","textMatchStyle":"exact","operationType":"fetch","startRow":0,"endRow":75,"pageNo":1,"pageSize":50,"totalRows":50,"totalPages":2,"realTotalRows":52,"user4xSessionId":6571,"data":[{"op":[{"opId":121,"woId":159,"opName":"confirm","candidateOperator":[{"id":"admin","pid":"1000","displayName":"超级管理员","type":"Person","phone":"N/A","email":"N/A","dataSource":"SM"}],"operationTime":0,"operationResult":0,"opFlag":0,"isNew":1,"intExtrattr":[0,0,0,0,0,0,0,0],"longExtrattr":[0,0,0,0,0,0,0,0],"timeExtrattr":[0,0,0,0,0,0,0,0],"userExtrattr":[{},{},{},{},{},{},{},{}]},{"opId":118,"woId":159,"opName":"create","operator":{"id":"admin","pid":"1000","displayName":"超级管理员","type":"Person","phone":"N/A","email":"N/A","dataSource":"SM"},"candidateOperator":[{"id":"","type":"Person"}],"operationTime":1416544164807,"operationResult":0,"opFlag":0,"isNew":1,"intExtrattr":[0,0,0,0,0,0,0,0],"longExtrattr":[0,0,0,0,0,0,0,0],"timeExtrattr":[0,0,0,0,0,0,0,0],"userExtrattr":[{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]}]},{"opId":119,"woId":159,"opName":"process","operator":{"id":"admin","pid":"1000","displayName":"超级管理员","type":"Person","phone":"N/A","email":"N/A","dataSource":"SM"},"candidateOperator":[{"id":"admin","pid":"1000","displayName":"超级管理员","type":"Person","phone":"N/A","email":"N/A","dataSource":"SM"}],"operationTime":1416550131113,"operationResult":1,"opFlag":0,"isNew":0,"intExtrattr":[0,0,0,0,0,0,0,0],"longExtrattr":[0,0,0,0,0,0,0,0],"timeExtrattr":[0,0,0,0,0,0,0,0],"userExtrattr":[{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]},{"data":[{"id":"","type":"Person"}]}]}],"taskName":"Yiked Kuala Nerang ... // 后面还有很多,总之很长

response.length()  =  118753 ;

///这么长的字符串 ,服务器端返回的 时间 差不多2 到3秒左右

 接下来:

JSONObject json = JSONObject.fromObject(response);

这时 就很慢了,差不多转换成json 对象时 需要 13 秒左右,这显然 对用户来说等待这么长时间是不允许的。


具体业务代码如下:

        long start = System.currentTimeMillis();//当前计算机时间与GMT时间相差毫秒数
        String res = HttpUtils.getRequestByJsonWidthPage(url,json1);
        res.length();
        long end = System.currentTimeMillis();
        long response = end - start ; //返回请求字符串相差毫秒数
        Log.d("response","服务器端返回请求秒:"+  response/1000);
        if (res == null || res.trim().equals(""))
            return null;
        long start1 = System.currentTimeMillis();
        JSONObject jsonget = JSONObject.fromObject(res);   ///转换长时间
        long end1 = System.currentTimeMillis();
        long str2json = end1 - start1;
        Log.d("str2json", "字符串转json 秒:" + str2json/1000);



解决方式:




http://hjg1988.iteye.com/blog/561368

http://bbs.csdn.net/topics/100163130

http://backend.blog.163.com/blog/static/20229412620131125115252102/

http://my.oschina.net/crooner/blog/224048


刷新

http://yajin167.info/2011/06/21/572.html

http://blog.csdn.net/trbbadboy/article/details/8565679#comments

//读取一个json 给String

    public static void main(String[] args) throws Exception
    {
        File file = new File("d:\\a.txt");
        FileReader reader = new FileReader(file);
        int fileLen = (int)file.length();
        char[] chars = new char[fileLen];
        reader.read(chars);
        String txt = String.valueOf(chars);
        System.out.println(txt);
    }


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

json字符串转化为复杂的java对象问题解决分享

一、遇到的问题 在实际的web程序,特别是后台程序,经常需要将批量数据保存到数据库,这样就会涉及到将前端页面的数据转化为java对象的问题。 1、对于简单的批量数据,比如说多个类目ID,就以逗号分...
  • xubo_ob
  • xubo_ob
  • 2016-09-08 09:11
  • 1674

解析JSON对象与字符串之间的相互转换(获取json数据转换为字符串,json传值方法)

对JSON对象与字符串之间的相互转换进行了详细的介绍; 在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要...
  • kunkun378263
  • kunkun378263
  • 2015-01-15 11:11
  • 3968

Java之使用json-lib进行对象与json字符串之间的转换

1、首先需要下载json-lib-2.4-jdk15.jar包。 下载地址:http://sourceforge.net/projects/json-lib/files/json-lib/json-...
  • chenbin520
  • chenbin520
  • 2013-04-09 12:09
  • 6524

前台 JSON对象转换成字符串 相互转换 的几种方式

在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用requ...
  • u011495724
  • u011495724
  • 2016-11-14 20:44
  • 116

百度天气api开发 全解析xml和json格式 使用json-lib jsonObject、 Gson 方式把json 转换成 java对象

首先你必须有一个百度的,访问应用(AK) ,否则就别往下读了 申请地址:http://lbsyun.baidu.com/apiconsole/key 注意: 写在前面-- java的类文件必须是ut...
  • linhuchong_blog
  • linhuchong_blog
  • 2015-03-05 16:34
  • 1442

前台 JSON对象转换成字符串 相互转换 的几种方式

在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用requ...
  • yali1990515
  • yali1990515
  • 2015-08-14 10:42
  • 54056

前台 JSON对象转换成字符串 相互转换 的几种方式

在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用requ...
  • qq_24084925
  • qq_24084925
  • 2016-08-11 15:39
  • 210

对象转换成json字符串(包括jar包)

  • 2012-05-11 11:01
  • 1.17MB
  • 下载

对象转换成Json字符串是时中文乱码

错误产生: 使用(Gson、FastJson)两个工具包直接将对象(包含中文)转换成Json字符串乱码: 解决办法:在Spring-MVC.xml配置文件添加以下配置,然后直接返回要生成J...
  • qq_26718271
  • qq_26718271
  • 2017-06-16 15:18
  • 1024

【第1篇】通过json-lib把字符串转换成json的使用

使用json-lib-2.2.3-jdk15.jar 通过json-lib把字符串转换成json的使用
  • jilongliang
  • jilongliang
  • 2015-01-18 17:05
  • 378
    个人资料
    • 访问:10835次
    • 积分:293
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:0篇
    • 译文:0篇
    • 评论:32条
    文章分类