1. 程式人生 > >什麽通用數據交換格式更好

什麽通用數據交換格式更好

服務 time 更多 同時 換行 ber 方便 根據 chan

http://blog.linjunhalida.com/blog/common-data-exchange-format/?utm_source=tuicool&utm_medium=referral

考慮可以同時用來應對程序和人都需要閱讀狀況的通用數據格式, 幾個層面:

首先是數據格式,需要能夠支持:string, bool, number, time。 它們都應該是標準化了的。考慮不增加symbol,因為和string有概念上面的重復, 使用上會產生困擾。

然後是數據的組織方式。因為組織本身是不可變的,用map和list能夠覆蓋所有類型的數據組合方式, 並且是完備的。tuple這種冗余不需要。

最重要的是數據的表示方式。 人工閱讀的數據應該容易閱讀,所以數據要有換行和縮進,沒有xml這種尾部冗余。 數據組織之間的切割應該用分割符,而不是換行。類似yaml這種換行分割會帶來更多的問題。 數據應該同時有兩種表示方式,一種文本格式,用utf8編碼,方便人閱讀, 一種二進制格式,機器處理更快,兩種方式能夠互相轉換。

關於xml,如果說json是類型的組合,那麽xml就是物件的組合,默認物件擁有屬性和子項, 所以xml我覺得是一種非通用的格式,本質模型不適合進行通用數據交換。

根據上述考慮,我覺得合適的方案是:格式化之後(換行縮進)的json,結合bson來用。 比如RESTful的服務,返回的json默認增加縮進,同時也提供bson格式的返回,不考慮其他格式。

什麽通用數據交換格式更好