网站建设公司哪家好 干净磐石网络,成品网站源码免费,天津品牌网站建设公司,网站建设上线问题Snack3#xff0c;一个高性能的 JsonPath 框架
借鉴了 Javascript 所有变量由 var 申明#xff0c;及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示#xff0c;ONode也即 One node 之意#xff0c;代表任何类型#xff0c;也可以转换为任何类型。
强调文档…Snack3一个高性能的 JsonPath 框架
借鉴了 Javascript 所有变量由 var 申明及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示ONode也即 One node 之意代表任何类型也可以转换为任何类型。
强调文档树的操控和构建能力高性能Json path查询顶级的兼容性和性能顺带支持序列化、反序列化基于 无参构造函数 字段 操作实现反序列化时不会有触发危险动作的风险
dependencygroupIdorg.noear/groupIdartifactIdsnack3/artifactIdversion3.2.57/version
/dependency本次累计更新
增加 ClassLoader 自动指定能力增加 NodeAttr 对 LocalTime,LocalDate,LocalDateTime 有效增加 selectOrNew() 接口可根据 jsonpath 表达式构建结构;
ONode oNode new ONode();
oNode.selectOrNew($.orders[0].price).val(500);
System.out.println(oNode.toJson());
//{orders:[{price:500}]}简单演示
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();//查找所有手机号并转为ListString
ListString list o.select($..mobile).toObject(List.class);
//查询data.list下的所有mobile并转为ListString
ListString list o.select($.data.list[*].mobile).toObject(List.class);
//找到187手机号的用户并输出ListUserModel
ListUserModel list o.select($.data.list[?(.mobile ~ /^187/)]).toObjectList(UserModel.class);
//或
ListUserModel list o.select($.data.list[?(.mobile ~ /^187/)]).toObjectList(UserModel.class);项目地址
https://gitee.com/noear/snack3https://github.com/noear/snack3