Java JsonPath:将嵌套的json对象提取为字符串

乔纳斯·赫斯(Jonas_Hess):

我需要获取一个json字符串,它是一个更大的json的一部分。作为简化示例,我只想提取file01,并且需要将json对象作为字符串。

{
    "file01": {
        "id": "0001"
    },
    "file02": {
        "id": "0002"
    }
}

因此,在代码中类似:

String file01 = JsonPath.parse(jsonFile).read("$.file01").toJson();
System.out.println(file01);  // {"id":"0001"}

我想使用库JsonPath,但是我不知道如何获得所需的东西。

任何帮助表示赞赏。谢谢!

雕文:

中的默认解析器JsonPath会将所有内容读取为,LinkedHashMap因此的输出read()将为Map可以使用诸如Jackson或Gson之类的库将其序列Map化为JSON字符串。但是,您也可以JsonPath在内部为您执行此操作。

为此,JsonPath您可以配置JsonPath的另一种实现AbstractJsonProvider,使您可以动手以JSON格式解析结果。在下面的例子中,我们使用GsonJsonProvider和输出read()方法一个JSON字符串。

@Test
public void canParseToJson() {
    String json = "{\n" +
            "    \"file01\": {\n" +
            "        \"id\": \"0001\"\n" +
            "    },\n" +
            "    \"file02\": {\n" +
            "        \"id\": \"0002\"\n" +
            "    }\n" +
            "}";

    Configuration conf = Configuration.builder().jsonProvider(new GsonJsonProvider()).build();

    JsonObject file01 = JsonPath.using(conf).parse(json).read("$.file01");

    // prints out {"id":"0001"}
    System.out.println(file01);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串转换嵌套字符转换成象Java格式特定的JSON

使用Java Streams根据条件从对象将值设置为字符串变量

将日期字符串解析为某些Java对象

将json字符串转换为java对象?

如何使用Java将包含JSON对象的字符串转换为实际JSON

Java-将字符串的JSON数组解析为字符串数组

如何将此嵌套的json字符串转换为Java对象?

将JSON字符串解析为Java Double时出现NumberFormatException

将JSON字符串转换为Java中的JSON对象

Java Regex:将信息从字符串提取到变量

从Java中的Json字符串中提取字段

Spark将JSON字符串转换为JSON对象(Java)

将jira json字符串转换为java对象

将JSON对象解析为Java中的字符串

使用Java将字符串转换为JSON对象

将JSON字符串转换为Java中的其他Java对象

JSON阅读器,无需解析即可将记录提取为Java字符串

将java对象存储为json字符串在MySQL数据库中吗?

将具有字符串json的Java对象转换为JSON

如何将Field对象解析为字符串(Java)

android,gson无法将json字符串解析为java对象

将字符串转换为Java中的嵌套ArrayList

Java:如何将JSON字符串参数解析为字符串和数组?

java:从字符串创建嵌套的json对象

将未标记的 JSON 字符串解析为 java 对象

从 Java 中嵌入的 JSON 字符串中提取值

java中如何将字符串转换为json字符串和对象

Java正则表达式为每个对象拆分JSON字符串

Java - 将 JSON 对象中的键提取为值为 true 的字符串