早先为 Jackson 写的 Json-Path 支持

今天才发现 Jackson 其实是支持 Json-Path 的,但以前一直不知道,关键是 Jackson 的文档也没见提到。所以很久以前是自己给 Jackson 写了一个简陋的 Json-Path 支持类,这个是为测试代码用的,所以基本够用。想要更全面的功能可使用 https://github.com/jayway/JsonPath 这个项目。对于 Jackson 中如何使用 Json-Path, 我还会进一步研究下。

我写的 RichJsonNode 类是一个 Scala 版本,最早也写过一个 Java 版本,还有一个基于 GSON 的 Java 版本的。这里只贴出 Scala 版源码。支持的基本方法及语法如下:

a/b, a/b[2], a/b[1]/c, a[1]/b, $[0]

selectNode(path), selectString(path), selectInt(path), selectDouble(path), selectBollean(path), hasField(path) 和  arrayLength(path)

源码如下:

因为做成了一个用于隐式转型的类,所以在 Scala 中使用起来比较简单

如果顶级是一个数组,如 [1, 2, {"a": 3}],那么可以用

对于 Jackson 的 Json-Path 支持还正在研习当中,如果 Jackson 已足够好,我将摈弃这里的实现。

类别: Scala. 标签: , . 阅读(325). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar