如何为 json 对象打印 json 路径

How to print jsonpath for json object

我正在寻找 java API,它为 json 对象中的所有字段打印 jsonpath。我的第一部分要求是,对于给定的 json 对象(或字符串)-

{
"store": {
    "book": [
        {
            "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
        },
        {
            "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
        }
}

它应该以键值对的方式打印所有属性,其中键是json字段的路径。

输出应该如下所示 -

$.store.book[0].category=reference
$.store.book[0].author=Nigel Rees
$.store.book[0].title=Sayings of the Century
$.store.book[0].price=8.95
$.store.book[1].category=fiction
$.store.book[1].author=Evelyn Waugh
$.store.book[1].title=Sword of Honour
$.store.book[1].price=12.99

等等。这将用于匹配来自另一个 json 对象的值(我的第二个要求)。

我找到了一个 API https://github.com/json-path/JsonPath,它有点符合我要求的第二部分,但它没有任何实用方法或获取对象或字段的 JsonPath 的方法。

在 jsonpath 中是否有任何 java api 或方法,我可以在其中获取 json 对象中给定字段的 jsonpath?

您是否尝试过使用 gson 库,看看 com.google.gson.stream.JsonReader.getPath() 我认为这会让您走上正确的方向。