美文网首页
精灵小巧的 Jsonpath 万精油:Snack3

精灵小巧的 Jsonpath 万精油:Snack3

作者: 草编椅 | 来源:发表于2020-08-11 20:49 被阅读0次

前几天和一个群里的朋友交流一个需求:在 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>

万精油哦......

相关文章

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

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

  • Snack3 之 Jsonpath使用

    Snack3 之 Jsonpath使用 一、 Snack3 和 JSONPath 介绍 Snack3 是一个支持J...

  • 更强的 JsonPath 兼容性及性能测试

    更强的 JsonPath 兼容性及性能测试 最近给自己的json框架snack3添加了json path支持。搞好...

  • JSONPath小试牛刀之Snack3

    最近在网上看了些JSONPath的入门例子。打算用Snack3这个框架写写例子。json path对`JSON的处...

  • JSONPath入门之Snack3篇

    Snack3 for java 一个微型JSON框架 基于jdk8,60kb。有序列化反序列化、解析和转换、支持 ...

  • 精油!精灵?

    最近,好奇的我,古灵精怪的我又研究起了精油。起源是我和朋友外出时一直打喷嚏,鼻子痒得直掉泪水,朋友从包里拿出一瓶精...

  • 颜色

    叮咚 小巧玲珑的 色彩精灵在 ...

  • 11.jsonpath模块

    jsonpath模块 知识点 -了解 jsonpath模块的使用场景 -掌握 jsonpath模块的使用 1. j...

  • 7款能量精油之甜橙精油

    导图章今天跟大家分享美乐家纯植精油之甜橙精油 甜橙精油有三个很好听的名字:自然界的小太阳、快乐的精灵、招财精油。 ...

  • 暑假旅行精油相伴

    精油相伴 唤醒阁Jy 动感夏日, 正是适合旅行的季节。 眼下体积小巧却功能强大的精油, 正成为很多MM行程中的必备...

网友评论

      本文标题:精灵小巧的 Jsonpath 万精油:Snack3

      本文链接:https://www.haomeiwen.com/subject/pyxudktx.html