Fastjson是一个Java语言编写的高性能功能完善的JSON库。由阿里巴巴公司团队开发的.

主要特性主要体现在以下几个方面:

1.高性能

fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。

2.功能强大

支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。

3.无依赖

不需要例外额外的jar,能够直接跑在JDK上。

4.支持范围广

5.开源

以下是几个简单的例子:

// 字符串转换成json数据
        String str = "{'name':'zhang','age':20}";
        String str_json1 = JSON.toJSONString(str, true);
        String str_json2 = JSON.toJSONString(str, false);
        System.out.println("格式化数据" + str_json1);
        System.out.println("未格式化数据" + str_json2);
        // json转化简单的实体类
        String stu = "{'name':'lisi','age':22}";
        Student ss = JSON.parseObject(stu, Student.class);
        System.out.println(ss);
        // 输出jsonObject中的数据
        JSONObject object = JSON.parseObject(stu);
        System.out.println("获取json数据中的数据       " + object.get("name") + " " + object.get("age"));
        // 删除json中的数据
        String propertyName = "name";
        Set set = object.keySet();
        set.remove(propertyName);
        // object.remove(propertyName);
        System.out.println("删除数据之后的json格式  " + object.toString());
        // json转化list集合
        // String list = "[{'name':'zhang','age':20},{'name':'li','age':30}]";
        // 添加属性value值
        String addPropertyName = "sex";
        String addPropertyVlaue = "man";
        object.put(addPropertyName, addPropertyVlaue);
        System.out.println("输出新增后的json数据   " + object.toString());
        // 修改属性的值等同于覆盖值
        String updatePropertyName = "sex";
        String updatePropertyVlaue = "woman";
        Set set2 = object.keySet();
        if (set2.contains(updatePropertyName)) {
            // object.put(updatePropertyName, JSON.toJSONString(updatePropertyVlaue));
            object.put(updatePropertyName, updatePropertyVlaue);
        }
        System.out.println("输出修改属性值的json数据   " + object.toString());
        // 判断json是否存在属性
        System.out.println("是否存在属性值id  " + object.keySet().contains("id"));
        // 转换日期,这个还是比较重要
        Object date = new Date();
        String date_json = JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS");
        System.out.println("日期处理  " + date_json);
        // 解析Map集合对象
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "李四");
        map.put("age", "20");
        String map_json = JSON.toJSONString(map);
        System.out.println("map转换成json数据     " + map_json);

Map<String, String> map1 = new HashMap<String, String>();
        map1.put("code", "11");
        map1.put("message", "ok");
        String json = JSON.toJSONString(map1);
        JSONObject jsonObject = JSON.parseObject(json);
        System.out.println("获取map集合中的数据   " + jsonObject.get("code") + "  " + jsonObject.get("message"));

// 解析多个对象成list集合 使用JSONArray数组
        String array = "[{'name':'zhang','age':20},{'name':'wang','age':21}]";
        List<Student> stu_list = new ArrayList<Student>(JSONArray.parseArray(array, Student.class));
        System.out.println("输出集合大小  " + stu_list.size());
        for (Student s : stu_list) {
            System.out.println("遍历每一个对象    " + s);
        }  

测试结果是:

格式化数据"{'name':'zhang','age':20}"
未格式化数据"{'name':'zhang','age':20}"
lisi 22
获取json数据中的数据       lisi 22
删除数据之后的json格式  {"age":22}
输出新增后的json数据   {"age":22,"sex":"man"}
输出修改属性值的json数据   {"age":22,"sex":"woman"}
是否存在属性值id  false
日期处理  "2017-01-23 17:01:00.258"
map转换成json数据     {"age":"20","name":"李四"}
获取map集合中的数据   11  ok
输出集合大小  2
遍历每一个对象    zhang 20
遍历每一个对象    wang 21

参考链接:

开源社区的fastjson技术内幕:   http://www.oschina.net/question/54100_30041

各个json技术之间的比较:  http://www.cnblogs.com/kunpengit/p/4001680.html

最新文章

  1. this指向
  2. [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索
  3. HTML5 respond.js 解决IE6~8的响应式布局问题
  4. Android -- View setScale, setTranslation 对View矩阵的处理
  5. Linux - Shell脚本调试方法
  6. Jmeter 快速入门教程(三-2) -- 设置集结点
  7. 【转】Android开发学习笔记:5大布局方式详解
  8. 10.8 OSInstall破解
  9. [Android] hid设备按键流程简述
  10. POJ 2533 Longest Ordered Subsequence - from lanshui_Yang
  11. c语言libcurl 使用实例get/post方法+c语言字符串处理
  12. 菜鸟Scrum敏捷实践系列(二)用户故事验收
  13. .Net Web开发技术栈
  14. 【实验手册】使用Visual Studio Code 开发.NET Core应用程序
  15. Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [web_dao,web_service] are excluded from annotation processing
  16. fastjson将json字符串转化成map的五种方法
  17. SecureCRT安装使用
  18. 2018-7-23到quectel报道
  19. Distributed systems theory for the distributed systems engineer
  20. unity3d 通过添加rigidBody来指明物体是动态的,以避免cache开销

热门文章

  1. 【Zookeeper】分布式服务框架 Zookeeper -- 管理分布式环境中的数据
  2. 通过java api提交自定义hadoop 作业
  3. 2017.6.8 spring-ldap基本使用总结
  4. Java三大器之过滤器(Filter)的工作原理和代码演示
  5. hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询
  6. vue vue-router beforeRouteEnter
  7. cocos2d-x 3.0 回调函数
  8. Android 开发 Eclipse使用SVN
  9. Hibernate学习之双向一对多映射(双向多对一映射)
  10. CSS基础2——选择器