AI智能
改变未来

精灵小巧的 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>

万精油哦……

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 精灵小巧的 Jsonpath 万精油:Snack3