精灵小巧的 Jsonpath 万精油:Snack3

前几天和一个群里的朋友交流一个需求:在 Json 里像 XPath 一样找出节点,并修改值,然后输出新的Json。

很多人马上就会说,Jsonpath 啊。

是的 Jsonpath 确实能快速找出节点;但修改值,并在之前的文档树里生效,能吗???很多框架并不能!(或者相当复杂)

能处理这种需要的 Snack3 算一个,而且非常的方便:

case1 :修改k1的值

var json = "{"k1":1,"k2":"123","k3":"az章","k4":[1, 2],"k5":{"k51": "511", "k52":[{"k521":"e"},{"k521":"F"}]}}";

var oNode = ONode.load(json);

oNode.select("$.k1").val(2);

var json21 = oNode.toJson();

case2 :修改k5/k52/@k512的值为e的所有节点(这需求听着都晕)

var json = "{"k1":1,"k2":"123","k3":"az章","k4":[1, 2],"k5":{"k51": "511", "k52":[{"k521":"e"},{"k521":"F"}]}}";

var oNode = ONode.load(json);

oNode.select("$.k5.k52[?(@.k521 == 'e')].k521").forEach(n-> n.val("ee"));

var json22 = oNode.toJson();

处理之种需求,只需要添加70kb的框架

<dependency>
  <groupId>org.noear</groupId>
  <artifactId>snack3</artifactId>
  <version>3.1.8.1</version>
</dependency>

万精油哦……

本站资源均源自网络,若涉及您的版权、知识产权或其他利益,请附上版权证明邮件告知。收到您的邮件后,我们将在72小时内删除。
若下载资源地址错误或链接跳转错误请联系站长。站长q:770044133。

» 精灵小巧的 Jsonpath 万精油:Snack3

发表评论

免登录下载网,提供全网最优质的资源集合!