您现在的位置是:首页 > 文章详情

🔥 高性能 Jsonpath 框架,Snack3 3.2.100 发布

日期:2024-05-29点击:131

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); 

项目地址:

原文链接:https://www.oschina.net/news/294810/snack3-3-2-100-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章