Java中使用fastJson

 

FastJson简介

  Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务、API接口、数据交换等多个场景。

FastJson的作用

  主要作用是用于将Java对象转换为JSON格式,或将JSON字符串转换为Java对象。它可以操作任何Java对象。

主要特性有:

.a.高性能:采用假定有序快速匹配的算法,将JSON Parse的性能提升到极致,成为Java语言中最快的JSON库之一。

.b.功能完善:支持丰富的数据类型转换、格式化输出、自定义序列化与反序列化等。

.c.简单易用:提供简洁明了的API接口,方便开发者快速上手。

FastJson 的依赖以及常规用法

对应的Maven依赖坐标如下:

<dependency>

      <groupId>com.alibaba.fastjson2</groupId>

      <artifactId>fastjson2</artifactId>

      <version>2.0.43</version>

</dependency>

常规用法如下:

一、校验JSON字符串格式是否合法

用法一

 JSON.isValid(字符串)

表示判断一个字符串是否为一个合法的JSON数据

 

 JSON.isValidObject(字符串)

表示判断一个字符串是否为一个合法的JSON对象数据

 

用法二

JSON.isValidArray(字符串)

表示判断一个字符串是否为一个合法的JSON数组数据

 

.二、Java对象(自定义类,list集合,Map集合)等转JSON字符串的方式

JSON.toJSONString(Object 数据类型)

表示将一个Java对象转换为JSON字符串

 

.三、JSON格式数据和Java对象相互转换

用法一

JSON.parseObject(字符串)

表示将JSON字符串数据转换为JSONObject对象

 

用法二

JSON.parseObject(字符串,  class)

将一个JSON字符串数据转换为一个Java对象

 

.四、JSON字符串和Java(集合)转换

用法一

JSON.parseArray(字符串)

表示将一个JSON字符串转换为Java(list)集合

 

FastJson的原理

Fastjson在序列化和反序列化过程中,通过反射机制和无参构造函数来实现对象和JSON字符串之间的转换。

FastJson案例演示:

示例代码一:

public static void main(String[] args) {

        String jsonStr = "{\"error\": \"invalid_request\", \"error_description\": \"该用户名不存在!\"}";

        // 验证JSON数据 是否合法

        boolean flag = JSON.isValidObject(jsonStr);

        System.out.println("flag-->" + flag);

        flag = JSON.isValid(jsonStr);

        System.out.println("flag-->" + flag);

        flag = JSON.isValidArray(jsonStr);

        System.out.println("flag-->" + flag);

 

        // JSON字符串 转 JSONObject(fastjson内置对象)

 

        JSONObject jsonObject = JSON.parseObject(jsonStr);

        Object error = jsonObject.get("error");

        System.out.println("error-->" + error);

        Object errorDescription = jsonObject.get("error_description");

        System.out.println("errorDescription-->" + errorDescription);

 

        // JSON字符串 转 Java对象

        ResultTest resultTest = JSON.parseObject(jsonStr, ResultTest.class);

        System.out.println("error-->" + resultTest.getError());

        System.out.println("errorDescription-->" + resultTest.getError_description());

 

        // Java对象 转 JSON字符串

        String jsonString = JSON.toJSONString(resultTest);

        System.out.println("jsonString-->" + jsonString);

}

测试结果如下:

 

示例代码二:

public static void main(String[] args) {

        // JSON 字符串转 JSONObject

        String jsonStr = "{ \"code\":\"10000\",  \"data\": [\"重庆\", \"成都\", \"西安\"]}";

        // 验证JSON数据 是否合法

        boolean flag = JSON.isValidObject(jsonStr);

        System.out.println("flag-->" + flag);

        flag = JSON.isValid(jsonStr);

        System.out.println("flag-->" + flag);

        flag = JSON.isValidArray(jsonStr);

        System.out.println("flag-->" + flag);

 

        JSONObject jsonObject = JSON.parseObject(jsonStr);

        Object code = jsonObject.get("code");

        System.out.println("code-->" + code);

        Object data = jsonObject.get("data");

        System.out.println("data-->" + data);

        // JSON字符串 转 JSONArray(fastjson内置对象)

        JSONArray objects = JSON.parseArray(data.toString());

        System.out.println("objects-->" + objects.get(1));

 

        // JSON字符串 转 Java对象

        ResultArrayTest resultArrayTest = JSON.parseObject(jsonStr, ResultArrayTest.class);

        System.out.println("code-->" + resultArrayTest.getCode());

        System.out.println("data-->" + resultArrayTest.getData().get(1));

 

        // Java对象 转 JSON字符串

        String jsonString = JSON.toJSONString(resultArrayTest);

        System.out.println("jsonString-->" + jsonString);

    }

测试结果如下:

 

上面就是对JSON简单使用的讲解,有其他更好建议的小伙伴欢迎补充。

 

posted @ 2024-03-23 12:03  一只爱阅读的程序员  阅读(983)  评论(0编辑  收藏  举报