guomingxing
V2EX  ›  Java

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

  •  
  •   guomingxing · Oct 17, 2019 · 7827 views
    This topic created in 2584 days ago, the information mentioned may be changed or developed.
    求个思路也行谢谢大佬们
    19 replies  •  2019-10-24 21:13:25 +08:00
    ysc3839
    ysc3839
    Oct 17, 2019 via Android
    1
    Python pyyaml load,然后 json dump。
    TMaize
    TMaize
    Oct 17, 2019
    2
    guomingxing
    guomingxing
    OP
    Oct 17, 2019
    3
    @ysc3839
    @TMaize
    让写个 JavaApi 给实现,不然我就直接拿去转了,哎。
    967182
    967182
    Oct 17, 2019
    4
    org.yaml.snakeyaml.Yaml
    TMaize
    TMaize
    Oct 17, 2019
    5
    @guomingxing yaml 包转 map,map 转 json
    Reficul
    Reficul
    Oct 18, 2019
    6
    YAML 和 JSON 是不等的,YAML 是 JSON 的超集。比如:

    ···yaml
    ---
    ?
    K1: V1
    :
    K2: V2
    ···
    zhouhu
    zhouhu
    Oct 18, 2019❤️1
    7
    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
    mingl0280
    Oct 18, 2019
    8
    额……编程的思路的话,就直接读到内存里然后 dump 到 json 呗,或者读到硬盘里(作为数据库)然后 dump 到 json
    非编程的话,Navicat Premium 倒一下就行了
    guomingxing
    guomingxing
    OP
    Oct 18, 2019
    9
    @zhouhu 我也搜到了这个,全网可能就搜到了这个最有用,但是学识浅薄没看懂嘿嘿。
    aitaii
    aitaii
    Oct 18, 2019 via iPhone❤️1
    10
    yaml 转 map,map 转 json
    mamahaha
    mamahaha
    Oct 18, 2019
    11
    正则啊
    sarie
    sarie
    Oct 18, 2019
    12
    现在问问题都不知道自己先百度或者 google 一下么
    zhouhu
    zhouhu
    Oct 18, 2019
    13
    @guomingxing 哪里看不懂啊
    RuzZ
    RuzZ
    Oct 18, 2019
    14
    @zhouhu 其实这个 SnakeYAML 里面也有一些地方会比较奇怪,比如`on|On|ON|off|Off|OFF`这些,即使是 key,也会解析成 bool 值
    ztcaoll222
    ztcaoll222
    Oct 18, 2019❤️1
    15
    parse 成类, 然后 dump
    fewok
    fewok
    Oct 18, 2019
    17
    yml 支持很多语法啊,比如占位、随机数、逻辑判断。这些都忽略吗??
    phontomKiseKi
    phontomKiseKi
    Oct 18, 2019
    18
    guomingxing
    guomingxing
    OP
    Oct 24, 2019
    19
    @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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2035 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 14:58 · PVG 22:58 · LAX 06:58 · JFK 09:58
    ♥ Do have faith in what you're doing.