当前位置: 首页 > 知识库问答 >
问题:

JsonPath获取过滤器后的字符串

蒋弘致
2023-03-14

我使用的是JAVA中的Jayway JsonPath 2.2版本。关于这一点,我几乎没有问题。

示例JSON:

{“l5”:[{“type”:“type1”,“result”:[“res1”]},{“type”:“type2”,“result”:[“r1”]}

>

如:

用于获取字符串的路径是l5[?(@. type=='type2')]. type预期结果:type2(字符串),但获取["type2"](数组)

如果我将其作为字符串提取时出错,请更正路径?

应用筛选器后,无法为结果数组编制索引。我怎样才能达到同样的效果?

如:

如果我使用路径l5[?(@.type=='type2')][0],而不是返回第一个JSONObject,它将返回[]

是否可以使用jsonPath从字符串中提取子字符串?

类似于l5[0]。类型[0,2]=

注意:我不能在JAVA中做任何操作,因为我想保持库通用?


共有1个答案

汪才
2023-03-14

jsonPath的返回值始终是一个数组,从这里引用。

因此,您尝试的操作1是不可能的,即字符串值永远不会返回
即使是操作2和操作3在jayway jsonpath上看起来也不可行。

在jayway Jsonpath上读得很好。

操作1和2的唯一可能方法如下所示:-

String jsonpath="l5[?(@.type == 'type2')].type";
        DocumentContext jsonContext = JsonPath.parse(jsonString);
        List<String> typeDataList= jsonContext.read(jsonpath);
        System.out.println(typeDataList.get(0)); //type2
 类似资料:
  • 问题内容: 嘿,我想知道是否有人知道使用正则表达式或通配符(或SQL中的pehaps )的方式,以便可以使用JSONPath在大量JSON数据内进行搜索。 例如(是的,我正在解析,而不是在应用程序中读取数据): 我希望能够浏览这样的数据: 其中参数的内容是数据对中部分或全部值的一部分。 目前,我只找到文件上,,,和关系运算符,它不给我那么多的灵活性。 有谁知道一个方法可以让我只是 刚刚 JSONP

  • 问题内容: 我正在生成一个XML文件进行付款,并且我对用户的全名有一个限制。该参数仅接受字母字符(a-ZAZ)+空格来分隔名称和姓氏。 我无法通过简单的方式对此进行过滤,如何构建正则表达式或过滤器以获得所需的输出? 例: 一定是 我需要将元音转换成带有单个元音的装饰,如下所示:á> a,à> a,â> a,依此类推;等等。并删除特殊字符,如点,连字符等。 谢谢! 问题答案: 您可以先使用规范化器,

  • 嗨,我有一个JSON对象: 现在我要访问之后的字符串(是数组值里面的一种键,我得到的数据是这样格式化的) 我不能确定它是数组中的第一个元素,只是它以“key” Xpath表达式的字符串结果最好是,而不是单引号或双引号 1.)我试图找到这样的过滤器表达式idContainer[?('213=*')]返回我这个元素 2.)更方便的方法是,我可以对结果进行更多过滤,只返回,但我不知道使用JSON XPa

  • 因此,我正在研究以下json: 我想检索联系人的类型为,并且只检索第一个返回的联系人。 将jsonpath与此路径一起使用时,“$…contacts[?(@.contactType=='S')].name”始终返回字符串数组,因为筛选操作始终将结果作为数组返回。 所以我尝试了“$联系人[?(@.contactType='S')].name[0]”和“$联系人[?(@.contactType='S'

  • 我知道如何计算出字符串中某个字符或数字的索引,但是有没有任何预定义的方法可以用来给我第n个位置的字符?所以在字符串“foo”中,如果我要求索引为0的字符,它会返回“f”。 注意——在上面的问题中,我所说的“字符”不是指字符数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我不会收到char,而是一个字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法

  • 问题内容: 我有这样的课 我在我的参考 我的是根据Firebase查询的类生成的字典数组。然后,我得到了从另一个视图控制器(该函数是集合视图)生成的字符串。我想获取该字符串,然后使用与我之前的字符串相等的字符串过滤或搜索数组。然后删除不等于。不仅对象,而且包含非等键,值对的整个数组。我已经找了几天了,但我坚持过滤从类创建的字典数组。我已经看过并尝试过NSPredicates,for- in循环,但