高性能 Jsonpath 框架,Snack3 v3.2.53 发布
Snack3,一个高性能的 JsonPath 框架
借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。
- 强调文档树的操控和构建能力
- 高性能Json path查询(顶级的兼容性和性能)
- 顺带支持序列化、反序列化
- 基于 无参构造函数 + 字段 操作实现(反序列化时不会有触发危险动作的风险)
<dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.2.53</version> </dependency>
本次累计更新:
- 增加特性 BooleanNullAsFalse, NumberNullAsZero, ArrayNullAsEmpty
- 默认 features_def,不再包括 StringNullAsEmpty(旧的作用,也就只有 OValue::getString 上)
- 增加 SerializeNulls 对 Map/nullValue 的控制(之前默认认输出)
- 增加 SerializeMapNullValues 特性
- 增加 getOrNew(int index, ONodeType newNodeType) 接口,自动新建时直接指定类型
- 增加 getOrNew(String key, ONodeType newNodeType) 接口,自动新建时直接指定类型
简单演示:
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业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
智能制造一体化 v3.9.1 发布,基础服务更新
智能制造一体化管理系统[SpringBoot2 - 快速开发平台],适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模块、动态表单、知识库、公告模块、企业论坛、云售后模块、生产模块、系统模块化同步模块等多种复杂业务功能。 智能制造一体化 v3.9.1 发布,更新内容如下: 新增业务对象管理 删除动态表单相关功能,融入到业务对象管理中 新增工作流属性设置功能 用品采购、用品领用整改为工作流低代码服务 新增属性扩展字段 布局新增属性控制 新增操作管理 重磅新闻:基础模块 (源代码) 针对星球内部用户开放,具体包含功能可查看:https://docs.qq.com/sheet/DYWZWUWZQUkFTcmh2?tab=BB08J2 erp:https://gitee.com/doc_wei01/erp-pro OA:https://gitee.com/doc_wei01/skyeye 报表:https://gitee.com/doc_we...
- 下一篇
go-dongle 0.2.8 版本发布,一个轻量级、语义化的 golang 编码解码、加密解密库
dongle 是一个轻量级、语义化、对开发者友好的 golang 编码解码和加密解密库 目前已被awesome-go收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/dongle gitee.com/golang-module/dongle 更新日志 openssl包头添加注释 新增openssl.RSA.FormatPublicKey()方法, 格式化公钥,添加头尾和换行符 新增openssl.RSA.FormatPrivateKey()方法, 格式化私钥,添加头尾和换行符 新增openssl.RSA.CompressKey()方法, 压缩密钥,去掉头尾和换行符 功能清单 Hex 编码、解码 Base16 编码、解码 Base32 编码、解码 Base45 编码、解码 Base58 编码、解码 Base62 编码、解码 Base64 编码、解码 Base64URL 编码、解码 SafeURL 编码、解码 Base85 编码、解码 Base91 编码、解码 Base100 编码、解码 Morse (摩斯) 编码、解码 Md2 加密 Md4 加...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境