gpt4 book ai didi

java - 如何拆分并打印 JSON/String 的一部分?

转载 作者:行者123 更新时间:2023-12-02 01:28:35 25 4
gpt4 key购买 nike

我有一个从数据库获取的 JSON 模式,它现在存储在 Java 中的字符串中。我只想打印模式的一部分而不是全部。如何拆分 JSON/String 并打印。

我尝试将字符串转换回 JSON 格式。但不知道如何分离所需的内容。而且 split 方法对我来说也不起作用。

输入:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"course_id": {
"type": "string"
},
"college_id": {
"type": "string"
}
},
"required": [
"employee_id",
"course_id",
"college_id"
]
}

预期结果:

employee_id, course_id, college_id

最佳答案

由于您的问题没有提供有关您使用哪个库来解析 JSON 文档的任何详细信息,因此我整理了一些使用流行的 Java JSON 解析库的方法。

JsonPath

使用 JsonPath 可以非常简单地实现这一点:

List<String> required = JsonPath.parse(json).read("$.required");

jackson

也可以通过 Jackson 来实现:

ObjectMapper mapper = new ObjectMapper();
List<String> required = mapper.convertValue(mapper.readTree(json).get("required"),
new TypeReference<List<String>>() {});

Gson

如果您喜欢Gson :

Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(json, JsonObject.class);
List<String> required = gson.fromJson(jsonObject.getAsJsonArray("required"),
new TypeToken<List<String>>() {}.getType());

JsonPath 与 Jackson 或 Gson

根据您的需求,您可以组合 JsonPathJacksonGson :

Configuration conf = Configuration.builder()
.jsonProvider(new JacksonJsonProvider())
.mappingProvider(new JacksonMappingProvider())
.build();
Configuration conf = Configuration.builder()
.jsonProvider(new GsonJsonProvider())
.mappingProvider(new GsonMappingProvider())
.build();
List<String> required = JsonPath
.using(conf)
.parse(json)
.read("$.required", new TypeRef<List<String>>() {});

关于java - 如何拆分并打印 JSON/String 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56474845/

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