• FastJson2.0介绍和使用


    FASTJSON 2.0介绍

    FASTJSON v2FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。通过同一套API

    • 支持JSON/JSONB两种协议,JsonPath 是一等公民。
    • 支持全量解析和部分解析。
    • 支持Java服务端、客户端Android、大数据场景。
    • 支持Kotlin
    • 支持JSON Schema
    • 支持Android
    • 支持Graal Native-Image 

    1、使用准备

    1.1、添加依赖

    fastjson v2中,groupId1.x不一样,是com.alibaba.fastjson2

    1. com.alibaba.fastjson2
    2. fastjson2
    3. 2.0.19

    可以在 maven.org 查看最新可用的版本。

    1.2、其他模块

    Fastjson v1兼容模块

    如果原来使用fastjson 1.2.x版本,可以使用兼容包,兼容包不能保证100%兼容

    1. com.alibaba
    2. fastjson
    3. 2.0.19

    Fastjson Kotlin集成模块

    如果项目使用Kotlin,可以使用fastjson-kotlin模块,使用方式上采用kotlin的特性。

    1. com.alibaba.fastjson2
    2. fastjson2-kotlin
    3. 2.0.19

    Fastjson Extension扩展模块

    如果项目使用SpringFramework等框架,可以使用fastjson-extension模块,使用方式参考 SpringFramework Support

    1. com.alibaba.fastjson2
    2. fastjson2-extension
    3. 2.0.19

    2、使用

    fastjson v2中,package1.x不一样,是com.alibaba.fastjson2。如果你之前用的是fastjson1,大多数情况直接更包名就即可。

    2.1、对象转JSON

    1. @Test
    2. public void test02(){
    3. UserModel userModel = new UserModel();
    4. userModel.setId(23L);
    5. userModel.setUserName("张三");
    6. System.out.println(JSON.toJSONString(userModel, JSONWriter.Feature.UseSingleQuotes));
    7. //结果:{"id":23,'userName':'张三'}
    8. }
    9. class UserModel {
    10. private Long id;
    11. private String userName;
    12. public Long getId() {
    13. return id;
    14. }
    15. public void setId(Long id) {
    16. this.id = id;
    17. }
    18. public String getUserName() {
    19. return userName;
    20. }
    21. public void setUserName(String userName) {
    22. this.userName = userName;
    23. }
    24. }

    2.2 、JSON转对象

    1. @Test
    2. public void test01() {
    3. //TODO 这块儿很奇特,对象转JSON 我填写了用单引号,但是ID属性还是输出的双引号
    4. String json = "{\"id\":23,'userName':'张三'}";
    5. UserModel userModel = JSON.parseObject(json, UserModel.class);
    6. }

    2.3、 将JSON解析为JSONObject

    1. @Test
    2. public void test03(){
    3. String json = "{\"id\":23,'userName':'张三'}";
    4. JSONObject data = JSON.parseObject(json);
    5. System.out.println(data.get("id"));
    6. }

    2.4、将JSON解析为JSONArray

    1. String text = "...";
    2. JSONArray data = JSON.parseArray(text);

    2.5、使用JSONObjectJSONArray

    1. String text = "{\"id\": 2,\"name\": \"fastjson2\"}";
    2. JSONObject obj = JSON.parseObject(text);
    3. int id = obj.getIntValue("id");
    4. String name = obj.getString("name");
    5. String text = "[2, \"fastjson2\"]";
    6. JSONArray array = JSON.parseArray(text);
    7. int id = array.getIntValue(0);
    8. String name = array.getString(1);
    9. JSONArray array = ...
    10. JSONObject obj = ...
    11. User user = array.getObject(0, User.class);
    12. User user = obj.getObject("key", User.class);

    后续补充。。。。

  • 相关阅读:
    前端vuePC端适配手机端最终方案详解(带源码)
    MVCC中的可见性算法
    12个MySQL慢查询的原因分析
    JSP实现数据传递与保存(一)
    海量短视频打标问题之多模态机器学习
    [USACO24JAN] Cannonball B 题解
    互联网商业模式之全民拼购
    Spring -Spring之依赖注入源码解析(下)--实践(流程图)
    60 个前端 Web 开发流行语你都知道哪些?
    Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析
  • 原文地址:https://blog.csdn.net/u011837804/article/details/127986518