Ovi*_*vid 29
如果不了解更多,我们无法真正回答这个问题.仅仅因为您目前还没有依赖任何其他项目,您是否可能在将来的某个时候与他们互动?如果是这样,他们更喜欢哪种技术?在BBC,我们已经有一些项目"JSON-只",才发现,谁想要访问我们的API的Java开发者们乞求我们提供一个简单的XML API仅仅是因为他们有这么多的工具,围绕XML构建.他们甚至不关心命名空间,属性或其他任何东西; 他们只是想要那些尖括号.
至于"存储饲料",我也不确定你的意思.您解释了Feed中的数据,但是您将对这些Feed进行哪些操作呢?解析他们?缓存并保留它们?把它们写成楔形文字片?:)
我听起来你真正想要的是一个数据库,你希望将数据保存在那里,然后将其作为JSON/YAML/XML或任何你想要的格式进行序列化.我建议的是能够将数据拉出到Perl数据结构中,然后让"格式化程序"知道如何将该数据结构序列化为所需的输出.这样你就可以序列化到JSON,后来如果不够好,可以轻松切换到YAML或其他东西.实际上,如果其他人需要您的数据(单向数据往往没有用),他们可以要求JSON,YAML,XML等等.您具有更大的灵活性,并且不依赖于您预先制定的决策.
话虽这么说,我不知道你的系统,所以很难说正确的做法是什么.而且,JSON和YAML并不完全可以与XML互换.微妙的差异可以而且会让你沮丧.
Jos*_*Fox 23
每个人都会做这个工作.
JSON的优点是可以在JavaScript中进行超级简单的解析,但您可能不得不在其他语言中查找和引入库.
XML的优势在于更多语言捆绑了相关的库,并且对您提到的存储很有用.因此,对于在"运动中"和"静止"中的不同系统进行传递是有价值的.
YAML具有适用于所有语言的库,但在某种程度上不太常用,因此您更有可能必须查找和引入库.
Jan*_*sen 20
我认为XML已被其他人彻底解释过了.但是,YAML和JSON都是优雅的语言,它们并不像你初看起来那么相似.
参考
Run Code Online (Sandbox Code Playgroud)- person: &id002 name: James age: 5.0 - person: *id001
第二个人是与第一个人相等的关联数组.
转换数据类型
Run Code Online (Sandbox Code Playgroud)foobar: !!str 123
foobar是"123"(类型字符串).
每个实现都不支持不常见的数据类型
维基百科:
特别有趣的是集合,有序映射,时间戳和十六进制.
因此,我认为JSON更简单.
不只是JavaScript
虽然如果不使用JavaScript,对你的应用程序使用"JavaScript Object Notation"似乎很愚蠢,但无论如何你应该考虑它,因为JSON中提供的数据类型可能也是你语言中最常见的数据类型.
即使空格是可选的,也是可读的
我认为JSON在经过美化后非常易读,这很容易做到.YAML很难做到紧凑,因为它依赖于空白.当然,您应该依靠压缩来节省带宽.YAML中的引用可能会节省几个字节,但它们会增加很多复杂性.如果你真的在处理大量数据以避免重复,那么我建议在另一个层面解决这个问题.甚至XML都不支持这些类型的宏.
Rob*_*ney 10
如果您需要与您无法控制的系统进行互操作(XML Schema在这里是非常宝贵的),如果您要将数据广泛地转换为文本,HTML或XML(尽管有仇恨,XSLT是无用的),如果您的数据包括很多文本标记,如果你的数据需要是人类可编辑的(尽管很讨厌,可以根据模式验证的可编辑XML对很多工作来说是一个非常好的工具),和/或如果你需要互操作任何无数的工作使用XML的工具和技术.
如果您真的不能被上述任何一项困扰,请选择JSON.
如果您在一个有很多YAML支持的环境中工作,请选择YAML.
JSON将是我的选择.JSON和YAML是轻量级的,易于入门(不需要正式的Schema).JSON使用得更广泛,并且与YAML之外的其他各种技术更兼容.例如,PHP有一个内置函数来解码或编码JSON,而不是YAML.JavaScript当然只是喜欢JSON,因为它是有效JavaScript的严格子集.
取决于您的需求.对于小巧轻便的应用程序,我个人认为XML太过分了:http://www.codinghorror.com/blog/2008/05/xml-the-angle-bracket-tax.html
在这种情况下,我更喜欢YAML.与javascript交互使用json.如果你真的需要定义自己的语法(读取:schema),那么xml就是它.非常强大,你必须决定你要做什么 - 否则你的问题太宽泛,无法给出明确的答案.
| 归档时间: |
|
| 查看次数: |
19770 次 |
| 最近记录: |