• 碰到的一个新的东西——yaml,果然是个好东西


    yaml 基础语法可以看阮一峰大大的博客yaml 语言教程

          看过了 xml 和 json之后,看一眼这个 yaml,觉得少写了好多东西,不用再去找层级关系了, yaml 直接一目了然,没有了尖括号,没有了大括号,没有了中括号,多了只是缩进和冒号【当然也会有大括号】,这点和有点像 python 了,注释和 properties 的注释一样,井号代表注释。

    直接来个xml,json,yaml 格式的对比吧:

    yaml 和 json在线格式对比

         注:不知道为什么,我在windows live writer上插入的链接有时候是好着的,有时候又多了我的博客地址的前缀,

              比如这个,显示的地址是{http://www.cnblogs.com/daimajun/p/nodeca.github.io/js-yaml/},大括号中黑色字体为正确的链接,

              剪切下来就可以访问了。

    xml 格式:

    <site>
        <name>baidu</name>
        <url>http://www.baidu.com.cn</url> 
    </site>
    <site>
        <name>google</name>
        <url>http://www.google.com</url>
    </site>

    Json 格式:

    {
    "site":{"baidu":"www.baidu.com",
            "google":www.google.com}
    }

    yaml 格式:

    ---
    site: 
        name: baidu 
        url : http://www.baidu.com.cn
    ---
    site:
        name: google
        url : http://www.google.com

         就这一小段数据,就能看出 yaml 相比 xml 和 json,简单明了很多。

         那么在 Java 中怎么使用 yaml 呢?肯定跟 xml 一样啊,xml 有 DOM 和 SAX解析,yaml 有Jyaml解析。

         Jyaml的源代码包下载地址Jyaml 源代码

         Jyaml的 jar 包下载地址Jyaml 的 jar包下载】【因为博客园只能上传zip格式的,所以是 zip 格式的,下载下来后,转换为 jar 结尾的文件就可以】

    【不知道为什么,有时候超链接会出问题,这里的 jar 包下载的链接是{files.cnblogs.com/files/daimajun/jyaml-1.3.zip},每次打开在前面都带我的博客地址】

    新建一个普通Java Project,添加 Jyaml.jar 包,下面是代码:

    package com.msym.jyaml;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    
    import org.ho.yaml.Yaml;
    
    public class Test {
    
        public static void main(String[] args) throws FileNotFoundException {
            //初始化yaml解析器
            Yaml yaml = new Yaml();
            File f = new File("D:/eclipseEE/EEworkspace/Jyaml/src/com/msym/jyaml/test.yaml");
            // 加载yaml文件
            Object result = yaml.load(new FileInputStream(f));
            //打印出来将会是HashMap
            System.out.println(result.getClass());
            System.out.println(result);
        }
    
    }

    test.yaml 文件中内容:

    ---
    site: 
        name: baidu 
        url : http://www.baidu.com.cn
    ---
    site:
        name: google
        url : http://www.google.com

    程序运行结果:

    image

    我也写一下这个 yaml 的基础语法,加深一下自己的印象。

    yaml 支持三种格式的数据:

    • 对象:键值对的集合,又称映射(mapping)/哈希(Hashes)/字典(dictionary)
    • 数组:一组按序列排列的值,又称为序列(sequence)/列表(List)
    • 纯量(scalars):单个的,不可分割的值

    第一种:对象

    等过段时间在工程中研究下这个 yaml文件。

    在 IDEA 中使用 yml 真的是智能。

  • 相关阅读:
    课程作业02
    课后作业01
    大道至简第一章伪代码
    《大道至简》读后感
    Codeforces 959 F. Mahmoud and Ehab and yet another xor task
    Codeforces 992 E. Nastya and King-Shamans
    Codeforces 835 F. Roads in the Kingdom
    Codeforces 980 D. Perfect Groups
    洛谷 P4315 月下“毛景树”
    JDOJ 1234: VIJOS-P1052 高斯消元
  • 原文地址:https://www.cnblogs.com/daimajun/p/7127507.html
Copyright © 2020-2023  润新知