gpt4 book ai didi

Java JsonPath : Extract nested json object as string

转载 作者:行者123 更新时间:2023-12-04 16:29:46 50 4
gpt4 key购买 nike

我需要获取一个 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 内执行此操作您配置JsonPathAbstractJsonProvider 的不同实现,它允许您将解析结果作为 JSON 处理。在下面的例子中,我们使用 GsonJsonProviderread() 的输出方法是一个 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);
}

关于Java JsonPath : Extract nested json object as string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078224/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com