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

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

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

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