碰到的一個新的東西——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 真的是智能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM