前幾天看到「Hjson, the Human JSON」這東西,想要在 JSON 上面提出拓展,讓人更好維護。
有幾個設計是大家已經想很久了。
首先是允許註解:
{
# specify rate in requests/second
"rate": 1000
}
再來是允許 ending trailing comma,這點在新的 JavaScript Engine 裡面是允許的,但在 JSON 規格裡是不允許的,對於 copy-paste 時就得很小心有沒有中獎:
{
one: 1,
two: 2,
}
另外幾個特點就還好。
object 的 key 沒有特殊情況時可以省略 double quote:
{
key: "value"
}
甚至 value 是 single line 時也可以省略:
{
text: look ma, no quotes!
}
而且當沒有 double quote 時不需要處理 escape 問題:
{
path: c:\windows
inject: <div class="important"></div>
# escapes work inside quotes
escape: "c:\\windows"
}
然後逗點可以省略,給的範例也突顯出對腦袋不直覺的問題 (ambiguous),這邊的 1 是 integer 還是 string?
{
one: 1
two: 2
}
多行,用 '''
應該是借用了 Python 的想法?
{
haiku:
'''
JSON I love you.
But strangled is my data.
This, so much better.
'''
}
規格後面有提到 syntax,可以看到定義。
Hjson 算是一個開始吧,YAML 的設計需要極長的 training 時間才能正確使用,不知道 SaltStack 會不會有人馬上寫 adapter 出來接?(因為 SaltStack 已經可以接 JSON 與 YAML,只要有人把該接的接上去就可以了)