如何在Java中将YAML转换为JSON?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Java中将YAML转换为JSON?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1769字,纯文字阅读大概需要3分钟。
内容图文
![如何在Java中将YAML转换为JSON?](/upload/InfoBanner/zyjiaocheng/706/042d19ddf88e46899981fe630f788151.jpg)
我只想将包含yaml的字符串转换为另一个字符串,该字符串包含使用Java的corrseponding转换后的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中:
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 String的解析器,它将解决我的问题,但我也没有找到类似的东西.
任何回复将不胜感激.
解决方法:
这是一个使用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中将YAML转换为JSON?全部内容,希望文章能够帮你解决如何在Java中将YAML转换为JSON?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。