FastJson详解
2016-07-05 16:59
716 查看
一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
二、特点
三、 使用方法说明
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object
parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject
parseObject(String text); // 把JSON文本parse成JSONObject
public static final T
parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
public static final JSONArray
parseArray(String text); // 把JSON文本parse成JSONArray
public static final List
parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
public static final String
toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String
toJSONString(Object object, boolean prettyFormat); //
将JavaBean序列化为带格式的JSON文本
public static final Object
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");
list.add(user);
strJson = JSON.toJSONString(list);
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":"xxx"},{"id":200,"name":"yyy"}]}:mw
######4:2:xxx
速度最快,测试表明,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类上的静态方法直接完成。
public static final Object
parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject
parseObject(String text); // 把JSON文本parse成JSONObject
public static final T
parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
public static final JSONArray
parseArray(String text); // 把JSON文本parse成JSONArray
public static final List
parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
public static final String
toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String
toJSONString(Object object, boolean prettyFormat); //
将JavaBean序列化为带格式的JSON文本
public static final Object
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");
list.add(user);
strJson = JSON.toJSONString(list);
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":"xxx"},{"id":200,"name":"yyy"}]}:mw
######4:2:xxx
相关文章推荐
- fastjson处理接口时的一个问题
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C# JSON格式化转换辅助类 ConvertJson
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧