老哥们有没有什么办法把 yml 文件转为 json

2019-10-17 22:10:14 +08:00
 guomingxing
求个思路也行谢谢大佬们
6339 次点击
所在节点    Java
19 条回复
ysc3839
2019-10-17 22:14:01 +08:00
Python pyyaml load,然后 json dump。
TMaize
2019-10-17 22:18:05 +08:00
guomingxing
2019-10-17 22:23:35 +08:00
@ysc3839
@TMaize
让写个 JavaApi 给实现,不然我就直接拿去转了,哎。
967182
2019-10-17 22:24:39 +08:00
org.yaml.snakeyaml.Yaml
TMaize
2019-10-17 22:25:12 +08:00
@guomingxing yaml 包转 map,map 转 json
Reficul
2019-10-18 00:24:12 +08:00
YAML 和 JSON 是不等的,YAML 是 JSON 的超集。比如:

···yaml
---
?
K1: V1
:
K2: V2
···
zhouhu
2019-10-18 01:01:48 +08:00
https://stackoverflow.com/questions/23744216/how-do-i-convert-from-yaml-to-json-in-java
仅供参考
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);
}
mingl0280
2019-10-18 01:38:13 +08:00
额……编程的思路的话,就直接读到内存里然后 dump 到 json 呗,或者读到硬盘里(作为数据库)然后 dump 到 json
非编程的话,Navicat Premium 倒一下就行了
guomingxing
2019-10-18 01:43:00 +08:00
@zhouhu 我也搜到了这个,全网可能就搜到了这个最有用,但是学识浅薄没看懂嘿嘿。
aitaii
2019-10-18 08:07:50 +08:00
yaml 转 map,map 转 json
mamahaha
2019-10-18 08:32:48 +08:00
正则啊
sarie
2019-10-18 08:52:18 +08:00
现在问问题都不知道自己先百度或者 google 一下么
zhouhu
2019-10-18 13:48:26 +08:00
@guomingxing 哪里看不懂啊
RuzZ
2019-10-18 14:04:07 +08:00
@zhouhu 其实这个 SnakeYAML 里面也有一些地方会比较奇怪,比如`on|On|ON|off|Off|OFF`这些,即使是 key,也会解析成 bool 值
ztcaoll222
2019-10-18 15:04:05 +08:00
parse 成类, 然后 dump
ztcaoll222
2019-10-18 15:07:04 +08:00
fewok
2019-10-18 16:57:24 +08:00
yml 支持很多语法啊,比如占位、随机数、逻辑判断。这些都忽略吗??
phontomKiseKi
2019-10-18 16:57:25 +08:00
guomingxing
2019-10-24 21:13:25 +08:00
@zhouhu 谢谢老哥,现在已经解决了。
@sarie 我确实是搜了很多办法,然后才来问的。
不过现在已经解决了,下面把办法粘贴一下吧,以后同样问题的希望不绕弯。
===================================================
//导入 fastjson 和 snakeyaml 两个依赖包,yamlString 传一 yaml 字符串。
public static JSONObject convertToJson(String yamlString) {
Yaml yaml= new Yaml();
Map<String, Object> map = (Map<String, Object>) yaml.load(yamlString);
JSONObject jsonObject=new JSONObject(map);
return jsonObject;
}
//如果想要读取外部的
InputStream inputStream = null;
try {
//yamlFilePath 是你的 yaml 文件路径
inputStream = new FileInputStream(yamlFilePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
===================================================
更多的可以去看这篇,我也是看到这个然后改了改发现是可以的。
https://blog.csdn.net/ruxyeah/article/details/78978034

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/610456

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX