FastJson详解

一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

二、特点

Fastjson是一个Java语言编写的JSON处理器。
1、遵循http://json.org标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。

三、 使用方法说明

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
publicstaticfinalObject parse(String text);// 把JSON文本parse为JSONObject或者JSONArray
publicstaticfinalJSONObject parSEObject(String text);// 把JSON文本parse成JSONObject
publicstaticfinalT parSEObject(String text,Class clazz);// 把JSON文本parse为JavaBean
publicstaticfinalJSONArray parseArray(String text);// 把JSON文本parse成JSONArray
publicstaticfinalList parseArray(String text,Class clazz);//把JSON文本parse成JavaBean集合
publicstaticfinalString toJSONString(Object object);// 将JavaBean序列化为JSON文本
publicstaticfinalString toJSONString(Object object,booleanprettyFormat);// 将JavaBean序列化为带格式的JSON文本
publicstaticfinalObject toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

四、demo

代码

User user = new User();

user.setId(100);

user.setName("xxx");

String strjson = JSON.toJSONString(user);

System.out.println("######1:"+strjson+":"+JSON.parSEObject(strjson,User.class).getId());

List<User> list = new ArrayList<>();

list.add(user);

strjson = JSON.toJSONString(list);

System.out.println("######1:"+strjson+":");

user = new User();

user.setId(200);

user.setName("yyy");

System.out.println("######2:"+strjson+":"+JSON.parseArray(strjson,User.class).get(1).getName());

Map<Object,Object> map = new HashMap<>();

map.put("userInfos",list);

map.put("company","mw");

strjson = JSON.toJSONString(map);

System.out.println("######3:"+strjson+":"+JSON.parSEObject(strjson).get("company"));

List<User> users = new ArrayList<User>();

users = JSON.parseArray(JSON.parSEObject(strjson).get("userInfos").toString(),User.class);

System.out.println("######4:"+users.size()+":"+users.get(0).getName());

输出结果:

######1:{"id":100,"name":"xxx"}:100

######1:[{"id":100,"name":"xxx"}]:

######2:[{"id":100,"name":"xxx"},{"id":200,"name":"yyy"}]:yyy

######3:{"company":"mw","userInfos":[{"id":100,"name":"yyy"}]}:mw

######4:2:xxx

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...