🔥 高性能 Jsonpath 框架,Snack3 3.2.100 发布
Snack3,一个高性能的 JsonPath 框架
借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。
- 强调文档树的操控和构建能力
- 高性能Json path查询(顶级的兼容性和性能)
- 顺带支持序列化、反序列化
- 基于 无参构造函数 + 字段 操作实现(反序列化时不会有触发危险动作的风险)
<dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.2.100</version> </dependency>
本次累计更新:
- 添加 UseOnlySetter, UseGetter, UseOnlyGetter 特性
- 添加 ThData::clear 接口,用于清理 ThreadLocal 缓存
- 添加 Collections.EMPTY_MAP 等空集合的赋值支持
- 添加 Properties "type['a']" 风格的支持
- 添加 Properties "type[a]" 风格的支持
- 添加 Properties "type[]" 风格的支持
- 添加 Properties 增强模式(NameValues)转换
- 添加 ONodeAttr::asString
- 加强 部分格式验证
- 优化 实例化异常提示
简单演示:
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);
项目地址:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Firefox 126.0.1 发布
Firefox 126.0.1 现已发布,具体更新内容如下: Fixed 修复了在屏幕阅读器中读取标记的 PDF 文档的问题。(Bug 1894849) 修复了 macOS 上的崩溃报告对话框中不显示非美国本土语言环境的本地化文本的问题。(Bug 1896097) 修复了 Linux 上的拖放功能问题。(Bug 1897115) 修复了导致某些版本的 AMD 卡 GPU 内存使用率过高的问题。(Bug 1897006) 更新说明:https://www.mozilla.org/en-US/firefox/126.0.1/releasenotes/
- 下一篇
Protocol Buffers 27.0 发布
Protocol Buffers 27.0 已经发布。Protocol Buffers(protobuf)是Google 开源的语言无关、平台无关的可扩展机制,用于序列化结构化数据。 具体更新内容包括: Announcements Protobuf News可能包括针对即将发生的更改的附加公告或预先公告。 Compiler 在descriptor.proto中标记已删除的保留字段(d2da463) 为已知功能添加扩展声明。(f8d0a5b) 将 Java 生成器重构为单独的包和目标。(bd81fd9) 正式发布 27.0 版本。(baa83b6) 定义 2023 版特性的生命周期 (77f62de) 在 protoc 和 C++ 运行时中实现功能生命周期验证。(b3b4497) 为功能规格添加版本生命周期选项。(b09b3e4) 启用对 Java Lite 的版本支持。(500c953) 发布版本默认 CLI 参数。(7a0e10e) 更新 protoc 版本以包含 Java 和 C++ 的版本语言特性 protos (6483c47) C++ 修复文本格式分隔字段处理。(29c69f...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6