栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Alibaba /热门json解析开源项目 fastjson2

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Alibaba /热门json解析开源项目 fastjson2

一、介绍

FASTJSON v2是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。通过同一套API,
GitHub地址 : https://github.com/alibaba/fastjson2

  • 支持JSON/JSONB两种协议,JSONPath是一等公民。
  • 支持全量解析和部分解析。
  • 支持Java服务端、客户端Android、大数据场景。
  • 支持kotlin
1.使用maven添加依赖

    com.alibaba.fastjson2
    fastjson2
    2.0.3

2. fastjson v1 兼容模块

如果原来使用fastjson 1.2.x版本,可以使用兼容包,兼容包不能保证100%兼容,请仔细测试验证,发现问题请及时反馈。


    com.alibaba
    fastjson
    2.0.3

二、简单使用 1.创建实体类对象
package com.janson.demo.fastjson;

import lombok.Data;


@Data
public class DemoData {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}
2. 测试常用的三个方法 JSON.toJSONString(JavaBean),JSON.parseObject(str, DemoData.class);JSON.parseArray(str, DemoData.class);
  • 方法介绍:
    • JSON.parseObject(str, DemoData.class) 将JSON解析为JSONObject
    • JSON.parseArray(str, DemoData.class); 将JSON解析为JSONArray
    • JSON.toJSONString(JavaBean),将Java对象序列化为JSON
package com.janson.demo.fastjson;

import com.alibaba.fastjson2.JSON;
import java.util.List;

public class TestFastjson {
    public static void main(String[] args) {
        System.out.println("-----JSON.toJSONString()-----测试javaBean转为json字符串---------------");
        DemoData demoData = new DemoData();
        demoData.setAge(18);
        demoData.setId(11108);
        demoData.setName("法外狂徒张三");
        demoData.setSex("男"); //
        String stoJSONString = JSON.toJSONString(demoData);
        System.out.println(stoJSONString);
        System.out.println("-----------测试结束--------------n");

        System.out.println("-----JSON.parseObject(s, DemoData.class);-----测试json字符串转为javaBean---------------");
        DemoData demoDataparseObject = JSON.parseObject(stoJSONString, DemoData.class);
        System.out.println(demoDataparseObject.getAge() + "  "  + demoDataparseObject.getName()+" " + demoDataparseObject.getId() + " "+demoDataparseObject.getSex());
        System.out.println("-----------测试结束--------------n");

        System.out.println("-----JSON.parseArray(str, DemoData.class);-----测试一组json字符串转为javaBean的集合(list)---------------");
        String str = "[{"age":18,"id":11108,"name":"法外狂徒张三","sex":"男"},{"age":80,"id":188808,"name":"法外狂徒川普","sex":"未知"}]";
        List demoDataparseArray = JSON.parseArray(str, DemoData.class);
        int i = 0;
        for (DemoData demoDataList: demoDataparseArray) {
            System.out.println("集合索引:" + i+ "集合数据" + demoDataList);
            i++;
        }
        System.out.println("-----------测试结束--------------");
    }
}

三、进阶使用 使用JSONB (JSONB 指 JSON Byte[]) 3.1 将JavaBean对象序列化JSONB =>
  • 方法 JSONB.toBytes(JavaBean)
  • 将JSONB数据解析为JavaBean :JSONB.parseObject(bytes,DemoData.class)
System.out.println("-----JSONB.toBytes()-----测试javaBean序列化JSONB,字节数组--------------");
DemoData demoData1 = new DemoData();
demoData1.setAge(18);
demoData1.setId(11108);
demoData1.setName("法外狂徒张三");
demoData1.setSex("男");
byte[] bytes = JSONB.toBytes(demoData1);
System.out.println(bytes.length);
for (int b = 0;b
    System.out.println( b +"  "+ bytes[b]);
}
System.out.println("-----------测试结束--------------n");

System.out.println("-----JSONB.parseObject(bytes,DemoData.class)-----测试JSONB解析为javaBean--------------");
DemoData demoDataJSONB = JSONB.parseObject(bytes,DemoData.class);
System.out.println(demoDataJSONB.getId() + "  "+ demoDataJSONB.getName() + " "
        + demoDataJSONB.getAge() + "  "+demoDataJSONB.getSex());
System.out.println("-----------测试结束--------------n");


``

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/895760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号