android fastjson使用方法 fastjson教程

OK。由于因为数据加密,还有网络请求的问题,需要把JSON解析从后台Service中转移到前台UI线程来解析。所以,我开发的时候极大 的考虑了json解析的速度。不然耗时太厉害的话UI线程卡顿。会让界面看起来卡一下,卡一下的。

package com.commons.utils.json;

import com.tencent.stat.common.User;

import org.apache.commons.lang.StringUtils;

import java.security.Principal;

import java.security.acl.Group;

import java.util.Enumeration;

import java.util.List;

import  com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.JSONArray;

/**

* Created by wei on 2014/8/8.

*   JSON帮助类  这个可以做一个实例研究代码,也可以作为一个工具类 去调用。

*   FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。Fastjson支持java
bean的直接序列化。

*   你可以使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库。

FastJson速度最快,fastjson具有极快的性能,超越任其他的Java Json parser。

FastJson功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖。

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

使用Fastjson首先在官网下载,然后应用到自己的项目中

在需要解析JSON的Response中,需要导入如下四个包。

import  com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONException;

一.首先概述一下Fastjson中的经常调用的方法:  避免使用org.apche.json的包。

1 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

2 public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

3 public static final  T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean

4 public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

5 public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合

6 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本

7 public static final String toJSONString(Object object, boolean prettyFormat);
// 将JavaBean序列化为带格式的JSON文本

8 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

*/

public class JSONHelper {

//第一部分  javabean转JSON  或者jsonstr

/**

* 将一个 Object 或者List对象转化为JSONObject或者JSONArray

* @param ObjOrList  Object 或者List对象

* @return

*/

public static Object toJSON(Object ObjOrList)

{

Object obj=null;

try {

obj=JSON.toJSON(ObjOrList);

} catch (Exception e) {

e.printStackTrace();

}

return obj;

}

/**

* 将一个 Object 或者List对象转化为JSOObject或者JSONArray

* @param ObjOrList  Object 或者List对象 或者hashmap 但是如果是set  就会有问题

* @return

*/

public static String toJSONStr(Object ObjOrList)

{

String  jsonstr="";

try {

jsonstr=JSON.toJSONString(ObjOrList);

} catch (Exception e) {

e.printStackTrace();

}

return jsonstr;

}

//第二部分字符串转  obj list

/**

* 字符串转obj

* @param jsonstr

* @param clazz

* @return

*/

public static Object parseToObject(String jsonstr,Class<?> clazz)

{

Object parseObj=null;

try {

parseObj=JSON.parseObject(jsonstr, clazz);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

/**

* 字符串转list

* @param jsonstr

* @param clazz

* @return

*/

public static List<?> parseToList(String jsonstr,Class<?> clazz)

{

List<?> parseObj=null;

try {

parseObj=JSON.parseArray(jsonstr, clazz);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

//第三部分  字符串转JSONObj  或者JSONArray

/**

* 字符串转jsonobj

* @param jsonstr

* @return

*/

public static JSONObject parseToJSONObejct(String jsonstr)

{

JSONObject parseObj=null;

try {

parseObj=JSON.parseObject(jsonstr);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

/**

* 字符串转list

* @param jsonstr

* @return

*/

public static JSONArray parseToJSONArray(String jsonstr)

{

JSONArray parseObj=null;

try {

parseObj=JSON.parseArray(jsonstr);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

//第四部分 com.alibaba包下 JSONObj 或者JSONArr 转 javabean或者 java array

/**

*

* @param jsonObj

* @param obj

* @return

*/

public static Object parseToObject(JSONObject jsonObj,Class<?> obj)

{

Object parseObj=null;

try {

parseObj=JSON.parseObject(jsonObj + "", obj);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

/**

*

* @param jsonArr

* @param obj

* @return

*/

public static List<?> parseToList(JSONArray jsonArr,Class<?> obj)

{

List list=null;

try {

list=JSON.parseArray(jsonArr + "", obj);

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

//第五部分 将android系统下的JSONObj 或者JSONArr 转 javabean或者 javaarr

//第五部分看似没用不过想想特么的 用的人偶尔还是会用到系统的JSON对象  所以决定加下面这两个方法

/**

*

* @param jsonObj  android系统下的JSONObj

* @param obj

* @return

*/

public static Object parseToObject(org.json.JSONObject jsonObj,Class<?> obj)

{

Object parseObj=null;

try {

parseObj=JSON.parseObject(jsonObj.toString(), obj);

} catch (Exception e) {

e.printStackTrace();

}

return parseObj;

}

/**

* @param jsonArr  android系统下的JSONArr

* @param obj

* @return

*/

public static List<?> parseToList(org.json.JSONArray jsonArr,Class<?> obj)

{

List list=null;

try {

list=JSON.parseArray(jsonArr.toString(), obj);

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

}

时间: 2024-11-10 01:17:27

android fastjson使用方法 fastjson教程的相关文章

Windows环境下Android Studio v1.0安装教程

Windows环境下Android Studio v1.0安装教程 Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包. 要求:JDK 7以及以上版本. Android Studio安装文件. Windows: exe(包含SDK) (813 MB) exe(不包含SDK) (250 MB) zip (235 MB) Mac dmg (234 MB) zip (233 MB) Linux: zip (233 MB) 说明: 32位系统和64位系统是同一个安

【转】Android Studio安装配置学习教程指南 下载和安装--不错

背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发的未来,那么我们还有什么理由不去拥抱未来呢? 虽然推出了很久,但是国内貌似普及的程度并不高,鉴于很多朋友求studio的详细教程,那么今天我就手把手教大家下载.安装.使用,Studio之路从这里开始. Android Studio VS Ec

【转】Windows环境下Android Studio v1.0安装教程

原文网址:http://ask.android-studio.org/?/article/9 http://android-studio.org/index.php/docs/experience/158-androidstudio-v1-0-win-install Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包.要求:JDK 7以及以上版本. Android Studio安装文件. Windows:exe(包含SDK) (813 MB)exe(不包含

[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟器,如图: 2 编译环境 UbuntuKylin 16.04 LTS Android 6.0_r1 Open JDK 7 3 准备工作 (1) 下载android 6.0源码.

Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)

原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因为升级后的cocos2d-x有了一些变化,眼下的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交叉编译环境组建的说明,所以我这几天研究了一下,如今将详细的搭建方法分享出来,也给自己学习Cocos2d-x做个笔记. 參考博文: http://www.cnblogs.com/lhm

Android自定义View【实战教程】5??---Canvas详解及代码绘制安卓机器人

友情链接: Canvas API Android自定义View[实战教程]3??--Paint类.Path类以及PathEffect类详解 神马是Canvas 基本概念 Canvas:可以理解为是一个为我们提供了各种工具的画布,我们可以在上面尽情的绘制(旋转,平移,缩放等等).可以理解为系统分配给我们一个一个内存空间,然后提供了一些对这个内存空间操作的方法(API), 实际存储是在下面的bitmap. 两种画布 这里canvas可以绘制两种类型的画图,分别是view和surfaceView. V

Android Studio下载及使用教程(转载)

(一)下载及相关问题解决: Android Studio 下载地址,目前最新可下载地址,尽量使用下载工具. Android Studio正式发布,给Android开发者带来了不小的惊喜.但是下载地址却不给力,国内似乎无法正常下载.这里我们在网盘上传了,可以尽情下载了. Android Studio官方网站地址:http://developer.android.com/sdk/installing/studio.html 第一步:Android Studio下载地址: Unix/Linux:and

Android Studio使用技巧系列教程(二)

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58 关注新浪微博:@于卫国 邮箱:[email protected] 最终我还是没能够遵守承诺.之前我写的文章应该算是一个新的系列,一年后我们又回来了. 因此我又重新开始了.我每天在Google+上发表的一系列文章我将会分享在这里,就像Daniel Lew之前所做的. 自从我在G+上写的新的系列,会从之前所发表的文章复制一些到这里. 如果你想获取最新的教程,在google+上关注我或者订阅 Android De

Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交叉编译环境组建的说明,所以我这几天研究了一下,现在将具体的搭建方法分享出来,也给自己学习Cocos2d-x做个笔记. 参考博文: http://www.cnblogs.com/lhming