免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      fastjson 解析 阿里最新JSON解析庫發(fā)布,性能碾壓fastjson和jackson

      《開源精選》是我們分享Github、Gitee等開源社區(qū)中優(yōu)質(zhì)項目的欄目,包括技術(shù)、學(xué)習(xí)、實用與各種有趣的內(nèi)容。本期推薦的是一個阿里開源的高性能的JSON庫——FASTJSON2。

      fastjson 解析 阿里最新JSON解析庫發(fā)布,性能碾壓fastjson和jackson

      fastjson2是FASTJSON項目的重要升級,目標(biāo)是為下一個十年提供一個高性能的JSON庫。通過同一套API,

      支持JSON/JSONB兩種協(xié)議支持全量解析和部分解析支持Java服務(wù)端、客戶端Android、大數(shù)據(jù)場景支持Kotlin支持Android (2.0.3.android)支持Graal Native-Image (2.0.3.graal)

      使用準(zhǔn)備

      1 添加依賴

      Maven:

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

      Gradle:

      dependencies {implementation 'com.alibaba.fastjson2:fastjson2:2.0.3'}

      2 其他模塊

      Fastjson v1兼容模塊

      如果原來使用fastjson 1.2.x版本,可以使用兼容包,兼容包不能保證100%兼容,請仔細(xì)測試驗證,發(fā)現(xiàn)問題請及時反饋。

      Maven:

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

      Gradle:

      dependencies {implementation 'com.alibaba:fastjson:2.0.3'}

      kotlin集成模塊

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

      Maven:

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

      Gradle:

      dependencies {implementation("com.alibaba.fastjson2:fastjson2-kotlin:2.0.3")}

      簡單使用

      在fastjson v2中,package和1.x不一樣,是com.alibaba.fastjson2。如果你之前用的是fastjson1,大多數(shù)情況直接更包名就即可。

      1 將JSON解析為JSONObject

      String text = "...";JSONObject data = JSON.parseObject(text);byte[] bytes = ...;JSONObject data = JSON.parseObject(bytes);

      2 將JSON解析為JSONArray

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

      3 將JSON解析為Java對象

      String text = "...";User data = JSON.parseObject(text, User.class);

      4 將Java對象序列化為JSON

      Object data = "...";String text = JSON.toJSONString(data);byte[] text = JSON.toJSONbytes(data);

      5 使用JSONObject、JSONArray

      獲取簡單屬性

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

      讀取JavaBean

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

      轉(zhuǎn)為JavaBean

      JSONArray array = ...JSONObject obj = ...User user = obj.toJavaObject(User.class);List<User> users = array.toJavaList(User.class);

      6 將JavaBean對象序列化為JSON

      class User { public int id; public String name;}User user = new User();user.id = 2;user.name = "FastJson2";String text = JSON.toJSONString(user);byte[] bytes = JSON.toJSONBytes(user);

      序列化結(jié)果

      {"id" : 2,"name" : "FastJson2"}

      進(jìn)階使用

      1 使用JSONB

      將JavaBean對象序列化JSONB

      User user = ...;byte[] bytes = JSONB.toBytes(user);byte[] bytes = JSONB.toBytes(user, JSONWriter.Feature.BeanToArray);

      將JSONB數(shù)據(jù)解析為JavaBean

      byte[] bytes = ...User user = JSONB.parseObject(bytes, User.class);User user = JSONB.parseObject(bytes, User.class, JSONReader.Feature.SupportBeanArrayMapping);

      2 使用JSONPath

      使用JSONPath讀取部分?jǐn)?shù)據(jù)

      String text = ...;JSONPath path = JSONPath.of("$.id"); // 緩存起來重復(fù)使用能提升性能JSONReader parser = JSONReader.of(text);Object result = path.extract(parser);

      使用JSONPath讀取部分byte[]的數(shù)據(jù)

      byte[] bytes = ...;JSONPath path = JSONPath.of("$.id"); // 緩存起來重復(fù)使用能提升性能JSONReader parser = JSONReader.of(bytes);Object result = path.extract(parser);

      使用JSONPath讀取部分byte[]的數(shù)據(jù)

      byte[] bytes = ...;JSONPath path = JSONPath.of("$.id"); // 緩存起來重復(fù)使用能提升性能JSONReader parser = JSONReader.ofJSONB(bytes); // 注意這里使用ofJSONB方法Object result = path.extract(parser);

      —END—

      開源協(xié)議:Apache2.0

      開源地址:https://github.com/alibaba/fastjson2

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年6月28日 15:11
      下一篇 2022年6月28日 15:11

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息