我使用的是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中做任何操作,因为我想保持库通用?
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循环,但