标签: jayway

有什么理由启动一个没有“$”美元符号的 JsonPath 吗?

在 JsonPath 中,我看到“$”符号被描述为“引用根对象或元素”的符号。

例子:

JsonPath.read(json, "$.store.book[*].author");
Run Code Online (Sandbox Code Playgroud)

问题:有什么理由不以“$”开头的路径吗?

在 Jayway 中,您可以省略“$”。在路径的起点处并得到相同的结果。

但是,有理由这样做吗?

java jsonpath jayway

5
推荐指数
1
解决办法
2177
查看次数

Java - 使用 jsonPath 根据当前值更新 Json

我设法使用 jsonPath 和此代码更新 json 对象

JSONObject json = new JSONObject("{\"data\":[{\"city\":\"New York\",\"name\":\"John\",\"age\":31},{\"city\":\"Paris\",\"name\":\"Jack\",\"age\":12}]}");
DocumentContext doc = JsonPath.parse(json.toString())
                .set("$..name","newName");
System.out.println("doc.jsonString() = " + doc.jsonString());
Run Code Online (Sandbox Code Playgroud)

输出:

doc.jsonString() = {"data":[{"city":"New York","name":"newName","age":31},{"city":"Paris","name":"newName","age":12}]}
Run Code Online (Sandbox Code Playgroud)

现在我想根据旧值更新值(通过对旧值应用函数

DocumentContext doc = JsonPath.parse(json.toString())
                .set("$..name",upper(oldValue))
                .set("$..age", oldValue+10);
Run Code Online (Sandbox Code Playgroud)

这将导致以下 json

 doc.jsonString() = doc.jsonString() = {"data":[{"city":"New York","name":"JOHN","age":41},{"city":"Paris","name":"JACK","age":22}]}
Run Code Online (Sandbox Code Playgroud)

有人知道我如何能够像这样引用旧值吗?
问候,

java jsonpath jayway

4
推荐指数
1
解决办法
8486
查看次数

如何通过 Jayway JsonPath 展平带有嵌套列表的 json?

目前我需要根据配置处理一些 json 结果,而不是硬代码。

例如,json如下

{
    data: [{
        orderNo: "CG8310150",
        details: [{
            skuId: 4384,
            amount: 2
        }, {
            skuId: 4632,
            amount: 5
        }]
    }, {
        orderNo: "CG8310151",
        details: [{
            skuId: 4384,
            amount: 3
        }]
    }]
}
Run Code Online (Sandbox Code Playgroud)

我想要的结果如下

[{
    orderNo: "CG8310150",
    skuId: 4384,
    amount: 2
}, {
    orderNo: "CG8310150",
    skuId: 4632,
    amount: 5
}, {
    orderNo: "CG8310151",
    skuId: 4384,
    amount: 3
}]
Run Code Online (Sandbox Code Playgroud)

如果有人有 Jayway JsonPath 的解决方案,或者有任何其他工具的建议,请告诉我。

感谢您的帮助!

java json jsonpath jayway

4
推荐指数
1
解决办法
4242
查看次数

标签 统计

java ×3

jayway ×3

jsonpath ×3

json ×1