JSON仍然變得越來越重要數據的交換,但JSON specification是在某些方面比較鬆:是否有可以與所有JSON解析器和數據庫使用JSON的安全的子集
名稱在一個對象內應該是唯一的。
實施可能會限制它接受的文本大小。實施可能會限制嵌套的最大深度。實施可能會限制數字的範圍。 實現可以對字符串的長度和字符內容設置限制。
我認爲,大多數JSON解析器忽略重複的對象鍵,不區分負零(-0)和零。大多數也可能將數字限制爲32位浮點數或有符號整數。此外,允許JSON包含不是有效的Unicode代碼點的字符(請參見this question)。我敢打賭,在基本多語言平面(U + 0000到U + FFFF)之上的Unicode字符可能會遇到問題。但不是JSON規範,像CouchDB,MongoDB,Persevere/Dojo等JSON數據庫增加了限制:我懷疑你可以在所有JSON商店中使用對象密鑰,如id
,_id
和$ref
,因爲它們在每個商店中可能都有特殊含義系統。
這在某種程度上令人沮喪:JSON應該很容易,但越接近你看到的障礙越多。是否有一個可以在所有解析器和數據庫中安全使用的JSON子集(不是太限制),還是NoSQL移動添加more and more extensions以及不應在JSON文檔中使用的特殊構造?