Snack3 v3.2.54 发布(支持 kotlin data 类反序化)


Snack3,一个高性能的 JsonPath 框架

借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。

  • 强调文档树的操控和构建能力
  • 高性能Json path查询(顶级的兼容性和性能)
  • 顺带支持序列化、反序列化
  • 基于 无参构造函数 + 字段 操作实现(反序列化时不会有触发危险动作的风险)
<dependency>
<groupId>org.noear</groupId>
<artifactId>snack3</artifactId>
<version>3.2.54</version>
</dependency>

本次累计更新:

  • 增加 kotlin data 类反序列化支持

简单演示:

ONode o = ONode.loadStr(json); //将json String 转为 ONode
ONode o = ONode.loadObj(user); //将java Object 转为 ONode

//不确定返回数量的,者会返回array类型
//找到所有的187开头的手机号,改为186,最后输出修改后的json
o.select("$..mobile[?(@ =~ /^187/)]").forEach(n->n.val("186")).toJson();
//找到data.list[1]下的的mobile字段,并转为long
o.select("$.data.list[1].mobile").getLong();

//查找所有手机号,并转为List<String> 
List<String> list = o.select("$..mobile").toObject(List.class);
//查询data.list下的所有mobile,并转为List<String>
List<String> list = o.select("$.data.list[*].mobile").toObject(List.class);
//找到187手机号的用户,并输出List<UserModel>
List<UserModel> list = o.select("$.data.list[?(@.mobile =~ /^187/)]")
.toObjectList(UserModel.class);
//或
List<UserModel> list = o.select("$.data.list[?(@.mobile =~ /^187/)]")
.toObjectList(UserModel.class);

项目地址:

  • https://gitee.com/noear/snack3
  • https://github.com/noear/snack3

相關推薦

2024-04-01

Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能

2022-09-08

Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能

2023-03-05

Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能

2023-04-24

用等。从头到尾都是用 Kotlin 编写的。 Ktor 2.3.0 近日正式发布,这次更新为 Ktor 生态带来了许多新功能和改进。以下部分简要介绍了该版本的主要变化: 核心改进 WebSockets ContentNegotiation 插件的显试类型 WebSocket ContentNegotiation

2023-09-01

solon.data.dynamicds 增加默认源配置项 优化 solon.serialization.snack3 对根字符串的解码处理 优化 solon.scheduling 的 @Async 定制能力 优化 solon.docs.openapi2 对基础类型列表识别过度的问题 优化 solon.docs.openapi2 对实体扩展的字段

2023-05-16

Epic Games 近日正式发布了虚幻引擎 5.2 版本,在 5.0 和 5.1 的框架和功能基础上进一步拓展,并为用户带来了更多全新工具。5.2 版本提供了诸多更新和改进,能让用户在打造次世代实时 3D 内容和体验时更加得心应手。同时将继续

2023-09-12

n 是另一种有前途的语言。JetBrains 公司于 2016 年首次正式发布 Kotlin 语言;2017 年,Google 宣布为 Android 版 Kotlin 提供一流支持。彼时,由于 Java(Android 的传统语言)被认为过于冗长,Kotlin 的受欢迎程度上升至 1%,并在当时的 TIOBE

2023-11-14

sp;2017 年,彼时 Google 宣布在 Android 上对 Kotlin 提供一流的支持,Kotlin 在 TIOBE 指数中也达到了近 1% 的峰值。但这一记录在本月被打破,目前 Kotlin 的评级为 1.15%。 TIOBE CEO Paul Jansen 评论称,“Kotlin 的进步将止步于

2023-02-27

发行版,供 Linux 应用程序开发者直接向最终用户构建和发布应用程序。他们认为,健康的应用程序生态对于 OSS 桌面的成功至关重要,让终端用户可以信任和控制他们设备上的数据和开发平台。 为了激励开发者参与建设 Linux

2023-07-18

Spring Data 2023.1.0-M1 现已发布。该版本介绍了 2023.1 版本的主要主题,以及所有主题的初始特性: 拥抱 JDK 21 LTS 对 Kotlin Value Classes 的支持 对 Repository Query Methods 的Limit支持 为 Spring Data JDBC 提供 Schema 和 SpEL 支持 可查

2023-05-14

阅发行说明和各个模块参考文档。 此版本将包含在即将发布的 Spring Boot 3.1 GA 版本中。 Spring Data 是一个用于简化数据库访问,并支持云服务的开源框架,旨在为数据访问提供一个熟悉的、一致的、基于 Spring 的编程模型,同时

2022-12-02

Spring Integration6.0.0 现已正式发布,且可以在 Maven Central 中找到。 此版本是一年多工作的结晶,完全基于 Spring Framework 6.0、Spring Data 2022.0、Spring for GraphQL 1.1、Spring WebServices 4.0 ,另一方面,Spring Integration 6.0 是最近发布的 Spring Boo

2022-11-14

知名软件行业分析公司 RedMonk 发布了 2022 年 6 月(第三季度)编程语言排行榜。 RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,统计分析后进行排序,其旨在深入了解潜在的语言

2024-04-18

,会出现 npe 的问题 socket.d 升为 2.4.10 folkmq 升为 1.4.2 snack3 升为 3.2.92 jackson 升为 2.17.0 fastjson2 升为 2.0.48 mybatis-flex 升为 1.8.7 beetlsql 升为 3.30.4-RELEASE netty 升为 4.1.107.Final vertx 升为 4.5.6 hutool 升为 5.8.27 smartsocket 升为 1.5.43 s