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

在Java中使用JsonPath解析JSON中的数组

仉昱
2023-03-14

我使用jayway JsonPath库使用给定的路径解析JSON。如果我给出正确的路径,我就能得到字符串值。但是,如果路径是数组,我想在给出路径时得到贴图列表。例如,我有一个JSON,如下所示:

{
    "employees": {
        "company": "Google",
        "people": [{
            "name": "John",
            "age": 25,
            "location": "zurich"
        },
        {
            "name": "Peter",
            "age": 27,
            "location": "Lucerene"
        }]
    }
}

下面是我用来解析json的代码。

如果我给出路径$。员工。people,我正在获取字符串,但我需要地图列表。下面是我使用jsonpath解析Json的代码。

DocumentContext documentContext = JsonPath.parse(jsonStr);
JsonPath jsonPath = JsonPath.compile("$.employees.people");
List<Maps<String,String>> jsonList = documentContext.read(jsonPath) //But this is returning String

任何人建议适当的方法来得到我所期望的。

共有1个答案

冀鸿才
2023-03-14

试着用,

DocumentContext documentContext = JsonPath.parse(jsonStr);
JsonPath jsonPath = JsonPath.compile("$.employees.people[?]");
List<Maps<String,String>> jsonList = documentContext.read(jsonPath);

如果你需要更多的细节。阅读更多。。。

 类似资料:
  • } 我在公共类中的主要方法是这样的: 以下是包裹的代码: } 但是我似乎没有找到正确的方法来将变量的所有值存储在列表中。现在我得到的只是parcel[data=null]。

  • 我有一个JSON文件,里面有很多对象和数组以及数组中的对象。 我在JSON path-data . offer . travels[1]. routes中的routes对象中有一个源和目的地之间的路由列表。 在每个路由对象中都有一个名为支路的数组,其长度可以是1、2或3。我编写了一个带有for循环的方法,在路由对象中循环并返回第一个只有1条支路的路由索引。但是它给出了一个错误。 为此编写了一个fo

  • 我希望通过java使用Api GSON解析一个JSON文件,以获取JSON文件的最后字段: json: java:

  • 我需要使用jsonpath解析例子1中的json,类似于下面的例子2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以动态地修改colourCode的值。 例1: 例2: Jsonpath: 这将返回"iPhone"

  • 问题内容: 我正在使用一个API,该API返回如下所示的JSON 在Swift中,我使用两个函数来获取并解析JSON 然后我用 可以很好地解析JSON。当我打印出 我得到了数组的所有内容。但是,我无法访问每个单独的索引。我很肯定这是一个数组,因为我之间 返回正确的长度。但是,如果我尝试通过使用访问单个索引 XCode关闭语法高亮显示并给我以下信息: 并且代码将无法编译。 这是XCode 6的错误,

  • 问题内容: 我想使用Api GSON通过java解析JSON文件以获取JSON文件的最后一个字段: 描述符.json: ListTeleServices.java: TeleService.java: Record.java: 最后是我的解析器类 JSONMainParse.java: 对我来说似乎正确,它应该显示:“ amine1”,但它在以下位置给了我一个 nullPointerExcepti