我只想使用 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 String 转换为另一个具有相应 json 的 String,即以下代码
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 字符串,它将解决我的问题,但我也没有找到类似的东西。
任何回应将不胜感激。
原文由 Miguel A. Carrasco 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个使用 Jackson 的实现:
要求: