gpt4 book ai didi

java - 如何在 Java 中将 YAML 转换为 JSON?

转载 作者:太空狗 更新时间:2023-10-29 22:31:09 24 4
gpt4 key购买 nike

我只想使用 Java 将一个包含 yaml 的字符串转换为另一个包含相应转换后的 json 的字符串。

例如假设我有这个yaml的内容

---
paper:
uuid: 8a8cbf60-e067-11e3-8b68-0800200c9a66
name: On formally undecidable propositions of Principia Mathematica and related systems I.
author: Kurt Gödel.
tags:
- tag:
uuid: 98fb0d90-e067-11e3-8b68-0800200c9a66
name: Mathematics
- tag:
uuid: 3f25f680-e068-11e3-8b68-0800200c9a66
name: Logic

在一个名为 yamlDoc 的字符串中:

String yamlDoc = "---\npaper:\n   uuid: 8a... etc...";

我想要一些方法可以将yaml字符串转换为另一个具有相应json的字符串,即以下代码

String yamlDoc = "---\npaper:\n   uuid: 8a... etc...";
String json = convertToJson(yamlDoc); // I want this method
System.out.println(json);

应该打印:

{
"paper": {
"uuid": "8a8cbf60-e067-11e3-8b68-0800200c9a66",
"name": "On formally undecidable propositions of Principia Mathematica and related systems I.",
"author": "Kurt Gödel."
},
"tags": [
{
"tag": {
"uuid": "98fb0d90-e067-11e3-8b68-0800200c9a66",
"name": "Mathematics"
}
},
{
"tag": {
"uuid": "3f25f680-e068-11e3-8b68-0800200c9a66",
"name": "Logic"
}
}
]
}

我想知道是否存在类似于此示例中的 convertToJson() 方法的内容。

我尝试使用 SnakeYAML 来实现这一点, 所以这段代码

 Yaml yaml = new Yaml();
Map<String,Object> map = (Map<String, Object>) yaml.load(yamlDoc);

构建包含已解析 YAML 结构的映射(使用嵌套映射)。然后,如果有一个解析器可以将映射转换为 json 字符串,它将解决我的问题,但我也没有找到类似的东西。

我们将不胜感激。

最佳答案

这是一个使用 Jackson 的实现:

String convertYamlToJson(String yaml) {
ObjectMapper yamlReader = new ObjectMapper(new YAMLFactory());
Object obj = yamlReader.readValue(yaml, Object.class);

ObjectMapper jsonWriter = new ObjectMapper();
return jsonWriter.writeValueAsString(obj);
}

要求:

compile('com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.7.4')

关于java - 如何在 Java 中将 YAML 转换为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744216/

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