【问题标题】:how to parse using Jsonpath?如何使用 Jsonpath 解析?
【发布时间】:2022-01-02 12:28:54
【问题描述】:

我想知道'pageName'的值,其中'createdTs'的值在JSON中是'333',如下所示,我应该如何使用Jsonpath?

[
   {
      "Test1":{
         "pageName":"Apple"
        },
         "Test1-1":{
            "createdTs":"333"
        }
    },
   {
      "Test2":{
         "pageName":"Tomato"
        },
         "Test2-1":{
            "createdTs":"555"
        }
    }
]

.Test1-1[?(@.createdTs == 333)] 看起来像这样:

[
   {
      "createdTs" : "333"
   }
]

我想要的解析结果是这样的。

[
   {
      "Test1":{
         "pageName":"Apple"
        },
         "Test1-1":{
            "createdTs":"333"
        }
    }
]

【问题讨论】:

    标签: jsonpath


    【解决方案1】:

    如果您使用 Jayway JSONPath 一个 Java DSL 来读取 JSON 文档,那么您可以使用这些 jsonpath 表达式。

    $[?(@.['Test1-1'].createdTs == 333)]
    

    OR 使用过滤运算符

    $[?(333 in @..createdTs)]
    

    OR 使用包含过滤运算符

    $[?(@..createdTs contains 333)]
    

    【讨论】:

    • 所有 3 种方法都可以正常工作。非常感谢。
    • mark an answer as "accepted",以表示答案解决了你的问题
    • 无论如何,我怎样才能只过滤高于 444 的那些,而不是“包含”?我不应该这样做 $[?(@..createdTs > 444)]
    • @testaaa 发布一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-02-23
    • 2018-01-27
    • 2017-02-05
    • 1970-01-01
    • 2021-09-18
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多