Json没有多行字符串或here documents(http://en.wikipedia.org/wiki/Here_document),当你想要使你的json文件更具可读性和可编辑性时,这通常会很尴尬。你可以使用字符串数组,但那只是一个笨拙的解决方法。
Json不允许注释。
如果你看一下Unix配置文件的格式,你会发现很多人都设计了自己的笨拙格式来处理一些本应该使用某种通用工具完成的事情。例如,以下是Apache配置文件中的一些代码:
RewriteEngine on
RewriteBase /temp
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
RewriteCond %{REQUEST_URI} \.html
RewriteCond %{THE_REQUEST} HTTP/1\.1
RewriteRule t\.html t.xhtml [T=application/xhtml+xml]
基本上,这里正在发生的是他们发明了一种极其痛苦的方式来编写布尔函数f(w,x,y,z)= w&!x&y&z。你想要逻辑“或”吗?他们也有一些单独的(丑陋的)机制。
这似乎指向一种数据描述语言,它简单而图灵不完备,但仍比json更具表现力,灵活和方便。有人知道这样的语言吗?
对我来说,XML太复杂了,lisp表达式具有错误的特性(图灵完备性),缺少正确的特性(文档,表达性语法)。
【编辑】标题有误。我实际上对json的下一次迭代不感兴趣。我对JavaScript子集的语言不感兴趣。我对替代数据描述语言感兴趣。