超越XML和JSON:YAM

2008-08-29 15:33:56.0     推荐:0    收藏:0    评论:0     来源:中国IT实验室

为Java开发者对YAML文件格式做一个高级介绍,找出它与XML和JSON的不同之处,并检验它的优越性和缺陷。

  所有动态语言(如Ruby,Groovy,Python等)及其相关的框架(如Ruby on rails)百家争鸣,尽管阅读本文的大部分Java开发者每天的大多数工作都是处理纯粹的Java,且未来多年都将如此,但这并不意味着他们不能学习新的知识,在他们的兵器库中添加新的兵器,本文介绍YAML(YAML不是标记语言的简写)文件格式(使用Ruby on rails框架进行讲解,因为它所有的配置文件都是使用的YAML)以及它与XML和JSON的区别,最后讨论了YAML的优势和缺点。

  空格缩进和JSON选项

  YAML文件格式主要集中于空格缩进的概念,它用于指出数据的层次结构 – 而不是使用XML嵌套标记或JSON的大括号({})和方括号([]),实际上,它是JSON的一个超集,因此,在使用的时候,你可能需要采用JSON风格的语法来跳出空格流,它的创始人将其形容为“为所有编程语言提供人性化的数据序列化标准”,以我的经验来看,其重点是人性化。

  下面是一个使用空格缩进的YAML样例,创建YAML文件时不宜使用固定宽度字体,因为空格是很关键的。(参考侧边栏1:YAML和标签

  JFrame:

  defaultCloseOperation: JFrame.EXIT_ON_CLOSE

  title: Test Frame

  width: 800

  height: 400

  components:

  - JTextArea:

  name: textArea1

  text: |

  This is a really long text

  that spans multiple lines (but preserves new lines).

  It does not need to be escaped with special brackets,

  CDATA tags, or anything like that

  - JButton:

  name: button2

  text: Button 2

  侧边栏1:YAML和标签

  基于空格缩进的任一文件格式最常见的问题之一是如何解释标签,在这个YAML例子中,答案相当简单:它不支持标签。使用标签字符缩进代替空格将会导致处理异常。

  随你喜欢,你可以在任何节点使用JSON风格语法或混合语法,例如,上面的例子可改为:

  JFrame:

  defaultCloseOperation: JFrame.EXIT_ON_CLOSE

  title: Test Frame width: 800

  height: 400

  components:

  - JTextArea:

  name: textArea1

  text: |

  This is a really long text

  that spans multiple lines (but preserves new lines).

  It does not need to be escaped with special brackets,

  CDATA tags, or anything like that

  - JButton: {name: button2, text: Button 2} #JSON风格语法

[第1页]   [第2页]   [第3页]   [第4页]   [第5页]   [第6页]   [下一页]
您可以针对本文进行:[评论]  [收藏]  [推荐]  
  • 共有0条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: