标签: jsonpath

使用jsonPath查找字符串

我正在尝试使用jsonPath和pick函数来确定是否需要根据当前域运行规则.我正在做的简化版本是:

    global 
{
    dataset shopscotchMerchants <- "https://s3.amazonaws.com/app-files/dev/merchantJson.json" cachable for 2 seconds
}

rule checkdataset is active
{
    select when pageview ".*" setting ()
    pre
    {
        merchantData = shopscotchMerchants.pick("$.merchants[?(@.merchant=='Telefora')]");
    }
    emit 
    <|
        console.log(merchantData);
    |>
}
Run Code Online (Sandbox Code Playgroud)

我期望的控制台输出是telefora对象,而是从json文件中获取所有三个对象.

如果不是商家=='Telefora'我使用merchantID == 16那么它的效果很好.我认为jsonPath也可以匹配字符串.虽然上面的例子没有搜索json的merchantDomain部分,但我遇到了同样的问题.

jsonpath krl

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

使用Jmeter中的"Json Path Extractor"从JSON响应中提取多个值

{
    "response_time": 0.014376163482666016,
    "applications": [
        {
            "api_key": "blted0e7982e1cf62a8",
            "name": "gta",
            "uid": "gta",
            "account_name": "jack"
        },
        {
            "api_key": "blt1423c40d23e4a423",
            "name": "cellapp",
            "uid": "cellapp",
            "account_name": "max"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

请帮我提取account_name = max使用Jmeter Json Path Extractor.

json jmeter jsonpath

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

用于检查Apache Camel XML中的字符串的JSONPath表达式

假设我有一个简单的json文件,如下所示

{
    "log": {
        "host": "blah",
        "severity": "INFO",
        "system": "1"
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Apache Camel,它是Spring XML来处理和路由json文件.我的路由代码看起来像这样:

<route>
    <from uri="file:/TESTFOLDER/input"/>
    <choice>
      <when>
        <jsonpath>$.log?(@.severity == 'WARNING')</jsonpath>
        <to uri="smtp://(smtpinfo...not important)"/>
      </when>
      <otherwise>
        <to uri="file:/TESTFOLDER/output"/>
      </otherwise>
    </choice>
</route>
Run Code Online (Sandbox Code Playgroud)

我真正困惑的部分是JSONPath表达式.我上面的表达式甚至在语法上都不正确,因为很难找到你不试图对元素列表进行排序的例子.我的目标是只在日志的严重性为"警告"时发送电子邮件,但我无法提出表达式.

json activemq-classic apache-camel jsonpath

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

在路径上使用Gson

使用简单的Json文件,例如:

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用路径获取JsonArraynamed menuitem

String path =  "menu.popup.menuitem"
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法执行此操作:

public static JsonElement fromString(String json, String path) throws JsonSyntaxException {
        JsonObject obj = GsonBuilder.create().fromJson(json, JsonObject.class);
        String[] seg = path.split(".");
        for (String element : seg) {
            if (obj != null) {
                obj = obj.get(element).getAsJsonObject();
            } else {
                return null;
            }
        }
        return obj
}
Run Code Online (Sandbox Code Playgroud)

与: …

java json jsonpath gson

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

JSONPath表达式:根据特定属性的存在或另一个属性的值获取其值

我有一个嵌套的父/子结构的JSON结构:

{
  "type": "site",
  "profile_id": "site profile id",
  "children": [
    {
      "type": "dealer",
      "profile_id": "dealer profile id",
      "children": [
        {
          "type": "location",
          "profile_id": "location profile id",
          "children": [
            {
              "type": "customer",
              "profile_id": "customer profile id",
              "children": [
                {
                  "type": "farm",
                  "farm_id": "farm id",
                  "children": [
                    {
                      "type": "field",
                      "field_id": "field id"
                     }]}]}]}]}]}
Run Code Online (Sandbox Code Playgroud)

JSONPath中有某种方法可以执行以下操作之一:

  1. 如果有profile_id,请给我;如果有farm_id,请给我;如果有,请给我field_id。

  2. 如果type = customer,请给我profile_id;如果type = farm,请给我farm_id;如果type = field,请给我field_id

  3. 给我每个班级的第n个属性。id实际上是每个类中的第三个属性。这是我最不喜欢的选项,因为我不知道id是否始终是第三个属性。

json jsonpath

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

如何使用jsonpath表达式在Array列表中查找最后一个元素?

我有像下面的json字符串

[
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 0
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 1
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 2
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 3
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 4
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": "test",
        "partition": 0,
        "offset": 5
    },
    {
        "topic": "inputTopic",
        "key": "0",
        "message": …
Run Code Online (Sandbox Code Playgroud)

jsonpath

4
推荐指数
2
解决办法
7999
查看次数

使用JSONPath编辑JSON

您好,SO社区:)!

我想创建一种方法,该方法将允许用户编辑(或添加)JSON特定值或对象(通过JSONPath在JSON中定位)。下面简单的例子是我的想法。用户始终输入JSON,JSONPath和要更改的值/对象。我正在使用Json.NET库。

方法输入 {json,jsonpath,valuetoedit} || 输出 {new json as string}

输入示例:

{ "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
      },
      { "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": { …
Run Code Online (Sandbox Code Playgroud)

c# json jsonpath

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

如何查询一个json文件?

这是我想解析的文件

  1. 我从 JSON 格式的网络服务接收文件。
  2. 我想以显示美国总统姓名的方式解析内容
{
    "response": {
        "result": {
            "Countries": {
                "row": [
                    {
                        "no": "1",
                        "FL": [
                            {
                                "content": "USA",
                                "val": "Country"
                            },
                            {
                                "content": "Barack Obama",
                                "val": "President"
                            }
                        ]
                    },
                    {
                        "no": "2",
                        "FL": [
                            {
                                "content": "Cuba",
                                "val": "Country"
                            },
                            {
                                "content": "Raul Castro",
                                "val": "President"
                            }
                        ]
                    }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

预期输出

{ presidents: [
    { "name": "Barack Obama"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

你能提供一个使用一种 JSON XPath 的解决方案吗?

javascript xpath json jsonpath typescript

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

使用JSONPath仅获取顶级子级

我有一个JSON数组,其中包含4个对象,每个对象都有一个id字段。第四个对象包含两个孩子,每个孩子也都有一个id字段。我只想获取4个顶级孩子的ID;我不希望第4个元素的子代的ID。

这是JSON字符串的简化版本:

[
  {
    "id": 709709537
  },
  {
    "id": 1104067257
  },
  {
    "id": 2961327618
  },
  {
    "id": 9066007668,
    "photo": {
      "id": 461295287,
      "thumbnails": [
        {
          "id": 461295307
        }
      ]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

使用JSONPath,$..id将获得全部6个id元素,而无法确定它们来自哪个级别,例如

[  
   709709537,
   1104067257,
   2961327618,
   9066007668,
   461295287,
   461295307
]
Run Code Online (Sandbox Code Playgroud)

我原本$.id希望给我4个顶级id孩子,但这一无所获。

我研究了许多页面,并尝试使用JSON测试器(例如https://jsonpath.curiousconcept.com/)进行了几次实验,但找不到JSONPath表达式来获取仅前4个子id元素。

是否有一个JSONPath表达式可以让我得到顶级子ID?

json jsonpath

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

如何从MockMvc中的jsonPath()中检索字符串

我想比较两个jsonPath值是否相等,如下所示:

this.mockMvc.perform(get(requestURL)).andExpect(jsonPath("$.prop1", equalTo(jsonPath("$.prop2"))));
Run Code Online (Sandbox Code Playgroud)

但后来我的测试失败了。该(“ $为prop1”)jsonPath返回正确的价值我想要的,但jsonPath(“$ PROP2。”)不返回该属性的值,而不是像类名:

org.springframework.test.web.servlet.result.JsonPathResultMatchers@7b7aaaf6

谁能给我个主意,我如何执行jsonPath()的toString()方法?我也尝试了jsonPath(“ $。prop2”)。toString(),但也收到了类名。

谢谢高级!

spring mocking jsonpath

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