FastJson2.0介绍和使用

这篇具有很好参考价值的文章主要介绍了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

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.19</version>
</dependency>

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

1.2、其他模块

Fastjson v1兼容模块

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

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.19</version>
</dependency>

Fastjson Kotlin集成模块

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

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2-kotlin</artifactId>
    <version>2.0.19</version>
</dependency>

Fastjson Extension扩展模块

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

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2-extension</artifactId>
    <version>2.0.19</version>
</dependency>

2、使用

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

2.1、对象转JSON


    @Test
    public void test02(){
        UserModel userModel = new UserModel();
        userModel.setId(23L);
        userModel.setUserName("张三");
        System.out.println(JSON.toJSONString(userModel, JSONWriter.Feature.UseSingleQuotes));
        //结果:{"id":23,'userName':'张三'}
    }

    class UserModel {
        private Long id;

        private String userName;

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }

        public String getUserName() {
            return userName;
        }

        public void setUserName(String userName) {
            this.userName = userName;
        }
    }

2.2 、JSON转对象

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

2.3、 将JSON解析为JSONObject

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

2.4、将JSON解析为JSONArray

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

2.5、使用JSONObject、JSONArray

String text = "{\"id\": 2,\"name\": \"fastjson2\"}";
JSONObject obj = JSON.parseObject(text);

int id = obj.getIntValue("id");
String name = obj.getString("name");
String text = "[2, \"fastjson2\"]";
JSONArray array = JSON.parseArray(text);

int id = array.getIntValue(0);
String name = array.getString(1);

JSONArray array = ...
JSONObject obj = ...

User user = array.getObject(0, User.class);
User user = obj.getObject("key", User.class);

后续补充。。。。文章来源地址https://www.toymoban.com/news/detail-454522.html

到了这里,关于FastJson2.0介绍和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • fastjson2 转换别名 null变空字符串

    2024年02月02日
    浏览(28)
  • 【fastjson2.x 记录】那些从1.x升级到2.x踩过的坑

    这篇文章主要记录升级到 fastjson2.x 版本后出现的一些问题  问题描述:从 2.x 版本后,fastjson 貌似开始对代码模块进行了拆分,所以在调整配置的时候,会发现有些类突然没了,其实是需要引入其他的扩展包。 从 2.0.22 版本开始,需要引入下面三个 jar 包 起初的 2.x 版本,只

    2024年02月13日
    浏览(25)
  • 解决Fastjson2 oom(Out Of Memory),支持大对象(LargeObject 1G)json操作

    在使用Fastjson中的 JSON.toJSONString时,如果对象数据太大(64M)会出现Out Of Memory,查看源码发现为JSONWriter中的判断代码  其中maxArraySize默认最大为64M,如果超过了就会抛出oom错误  如果fastjson过多的使用内存,也可能导致java堆内存溢出,所以这里建议控制好json对象大小,避免过多过大

    2024年02月12日
    浏览(29)
  • FastJson使用和依赖

    FastJson是阿里巴巴提供的JSON框架,可以将Java对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为Java对象。 使用FastJson需要在项目中引入依赖。在Maven项目中,需要在pom.xml文件中添加以下依赖: 在Gradle项目中,需要在build.gradle文件中添加以下依赖: 通过添加FastJs

    2024年02月11日
    浏览(29)
  • 关于fastjson中JSONPath的使用

    在项目中, 经常会涉及到对json字符串,进行查询, 添加,删除的处理操作. 传统方法需要一步一步进行处理,并且处理完需要将值进行封装. 而fastjson中提供的JSONPath, 可以更加简单的实现上述功能. JsonPath是一种简单的方法来提取给定JSON文档的部分内容, 提供的json解析非常强大,它

    2024年02月22日
    浏览(27)
  • FastJson使用详解这一篇就够了

    第一章 FastJson使用详解这一篇就够了 第二章 FastJsonHttpMessageConverter 类的作用与使用详解 第三章 Jackson 使用详解 为什么使用fastJson,如何使用fastJson以及通用的配置和使用方式将在本文进行详细介绍。 FastJson是一种高性能的Java JSON解析库,它采用类似于Jackson和Gson的JSON序列化和

    2024年02月12日
    浏览(26)
  • FastJson在Java后端方面解析使用(二)

    ​ JSON现在常用来做前后端数据交互,两个蝴蝶飞只是简单的对JSON做一下讲解和简单使用。关于JSON,我还了解的远远不够。由于本人经验有限,嘴皮子不溜,所以学术性,概念性,底层性的知识点暂时不做介绍。文章中有错误之处,欢迎拍砖和指点。在此,特别向阿里团队表

    2024年02月12日
    浏览(22)
  • FastJson远程代码执行漏洞基于JNDI反弹shell使用

    目录 基础知识: 漏洞利用的两种方式: 靶场环境说明 反弹shell准备 反弹shell执行 在FastJson组件1.2.24及之前版本存在远程代码执行漏洞(CVE-2017-18349)。 Fastjson是阿里巴巴公司开发的一个Java语言编写的高性能的JSON处理器。它采用一种“假定有序快速匹配”的算法,号称是目前

    2023年04月15日
    浏览(23)
  • 使用 fastjson 又又又翻车了,莫名其妙多了属性。。

    有一位同事说使用 fastjson 进行 JSON 序列化存储到数据库后,发现 JSON 字符串“莫名其妙地”多了一些属性!帮看了下代码,看到基本类型的布尔类型以 is 开头的属性,再看到 fastjson ,就有点想笑。 定义 MyClass 编写测试代码: 结果: 我们发现多了一个 active 属性,少了一个

    2024年02月16日
    浏览(33)
  • alibaba.fastjson的使用(三)-- Map、List ==》JSON字符串

    目录 1.使用到的方法为: 2. Map转JSON字符串 3. List转JSON字符串

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包