Android解析JSON速度对比

转载参考:http://blog.csdn.net/h3c4lenovo/article/details/26568531

 1 {
 2     "testStr":"这是String的测试",
 3     "testInt":12443,
 4     "data": [
 5         {
 6             "children": [
 7                 {
 8                     "id": 10007,
 9                     "title": "北京",
10                     "type": 1,
11                     "url": "/10007/list_1.json"
12                 },
13                 {
14                     "id": 10105,
15                     "title": "汽车",
16                     "type": 1,
17                     "url": "/10105/list_1.json"
18                 }
19             ],
20             "id": 10000,
21             "title": "新闻",
22             "type": 1
23         },
24         {
25             "id": 10002,
26             "title": "专题",
27             "type": 10,
28             "url": "/10006/list_1.json",
29             "url1": "/10007/list1_1.json"
30         },
31         {
32             "id": 10003,
33             "title": "组图",
34             "type": 2,
35             "url": "/10008/list_1.json"
36         },
37         {
38             "dayurl": "",
39             "excurl": "",
40             "id": 10004,
41             "title": "互动",
42             "type": 3,
43             "weekurl": ""
44         }
45     ],
46     "extend": [
47         10007,
48         10006,
49         10008,
50         10014,
51         10012,
52         10091,
53         10009,
54         10010,
55         10095
56     ],
57     "retcode": 200
58 }

     以下测试以上面这段JSON作为参考进行测试。

第三方JAR包:(阿里巴巴)fastjson-1.2.5.jar      (谷歌)gson-2.2.4.jar

 1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.util.Log;
 4 import com.alibaba.fastjson.JSON;
 5 import com.google.gson.Gson;
 6 import com.google.gson.reflect.TypeToken;
 7
 9 public class MainActivity extends Activity {
10     public final String TAG = "MainActivity";
11
12     Gson my_gson = new Gson();
13     java.lang.reflect.Type my_type = new TypeToken<TestBean1>() {
14     }.getType();
15
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20
21         new Thread(new Runnable() {
22             @Override
23             public void run() {
24                 doSth();
25             }
26         }).start();
27     }
28
29     private void doSth() {
30         Log.i(TAG, "start...");
31         try {
32              long startTime2 = System.currentTimeMillis();
33             String json = LocalFileUtils.getStringFormAsset(this, "testbean1.json");
34             for(int n = 0;n < 100000; n++) {
35                 TestBean1 toBean =  JSON.parseObject(json, TestBean1.class);
36                 System.out.println(toBean);
37             }
38             long endTime2 = System.currentTimeMillis() - startTime2;
39             Log.i(TAG, "fastjson....." + endTime2);
40
41
42             long startTime4 = System.currentTimeMillis();
43             String my_json = LocalFileUtils.getStringFormAsset(this, "testbean1.json");
44             for (int n = 0; n < 100000; n++) {
45                 // 使用JSON 操作 工具将JSON字符串封装到实体类
46                 TestBean1 toBean = my_gson.fromJson(my_json, my_type);
47                 System.out.println(toBean);
48             }
49             long endTime4 = System.currentTimeMillis() - startTime4;
50             Log.i(TAG, "gson....." + endTime4);
51
52         } catch (Exception e) {
53             e.printStackTrace();
54         }
55     }
56
57 }
public class TestBean1 {
    public String testStr;
    public Integer testInt;

    public List<NewsItem> data;
    public List<Integer> extend;
    public int retcode;

    public class NewsItem {
        public List<NewsCategory> children;
        public int id;
        public String title;
        public int type;
        public String url;
        public String url1;
        public String dayurl;
        public String excurl;
        public String weekurl;

        public class NewsCategory {
            public int id;
            public String title;
            public int type;
            public String url;
        }
    }

}

运行结果:

gson.....122298
fastjson.....138429

时间: 2024-11-04 07:06:24

Android解析JSON速度对比的相关文章

Android解析Json速度最快的库:json-smart

场景描写叙述: 本文仅验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度.结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是json-smart. Android 4.4.2 fastjson-1.1.34.android.jar gson-2.2.4.jar json-smart-2.0-RC3.jar **注意场景的限定条件** 核心代码: package com.h3c.mytestview; import java.io.StringRead

Android 解析json数据

1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度

android解析JSON

一.解析JSON数据: 首先引入包import org.json.JSONObject;(android sdk 14以后应该自带了 ) JSON数据如:String strJson = {"sid":"2","name":"张三"}; Android端的程序处理解析: JSONObject userJObject = new JSONObject(strJson ); String name = userObject.get

在android解析json

1.采用一般方式解释json为对象 1 package com.heimazyh.testjson; 2 3 import org.json.JSONException; 4 import org.json.JSONObject; 5 6 import com.heimazyh.http.Request; 7 import com.heimazyh.http.Response; 8 9 public class DoJson implements Response { 10 11 @Overri

Android 解析JSON格式数据

比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性较差,显示不如XML直观. JSON格式 :  { "name_A" : "value_A","name_B" : "value_B" } 表示:name_A = value_A;  name_B = value_B; 我将对下面的JSON数据进行解析: [{"id":"5","

【ListViewJson】【MainActivity功能性分析,不讨论具体工具类的实现】【android解析json数据(包含对图片数据的异步缓存处理),并将其加载到listview中】

最近遇到了一个相当好.对初学者相当友善的项目,是描述如何将json数据解析,并加载到listview中. 但是个人认为以后所有类似功能的实现都可以使用这套工具. 项目也可以使用这套架构. 这个项目是处理每个news只有一个imgurl,应该考虑一下当imgurl数量不定的时候具体应该怎么解决. 首先项目源码结构如下: 项目下载链接:http://download.csdn.net/download/y562810463/8004245 在这个项目中的com.demo.app.common包完全可

android 解析json数据格式(转)

json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}} 分析代码如下: // TODO 状态处理 500

【Android】解析JSON数据详解

Android解析JSON数据详解 JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Has

Android 之json解析2

JSON(JavaScript Object Notation) 定义:字符串 键值对 解析方法有JSON,谷歌GSON,阿里巴巴FastJSON 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性. 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换. JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. Json建构于两种结构: 1.“名称/值”对的集合(A collection of name