首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guomingxing
V2EX  ›  Java

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

  •  
  •   guomingxing · 100 天前 · 2837 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求个思路也行谢谢大佬们
    19 回复  |  直到 2019-10-24 21:13:25 +08:00
    ysc3839
        1
    ysc3839   100 天前 via Android
    Python pyyaml load,然后 json dump。
    TMaize
        2
    TMaize   100 天前
    guomingxing
        3
    guomingxing   100 天前
    @ysc3839
    @TMaize
    让写个 JavaApi 给实现,不然我就直接拿去转了,哎。
    967182
        4
    967182   100 天前
    org.yaml.snakeyaml.Yaml
    TMaize
        5
    TMaize   100 天前
    @guomingxing yaml 包转 map,map 转 json
    Reficul
        6
    Reficul   100 天前
    YAML 和 JSON 是不等的,YAML 是 JSON 的超集。比如:

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