如果我從REST風格的Web查詢中返回[「foo」],哪個更合適?迂腐的REST解析會死在換行符上嗎?REST/JSON:我應該在JSON字符串之後包含換行符嗎?
["foo"]\n (with newline, Content-Length=8)
["foo"] (no newline, Content-Length=7)
爲了方便迴歸測試我喜歡用換行的形式,但我要確保我不會被打破,可能有REST格式的更加嚴格視圖中的任何應用程序框架。
如果我從REST風格的Web查詢中返回[「foo」],哪個更合適?迂腐的REST解析會死在換行符上嗎?REST/JSON:我應該在JSON字符串之後包含換行符嗎?
["foo"]\n (with newline, Content-Length=8)
["foo"] (no newline, Content-Length=7)
爲了方便迴歸測試我喜歡用換行的形式,但我要確保我不會被打破,可能有REST格式的更加嚴格視圖中的任何應用程序框架。
引用自RFC 4627,加粗相關部分強調。
JSON文本是一個令牌序列。這組令牌包括六個結構字符,字符串,數字和三個字面名稱。
JSON文本是一個序列化的對象或數組。
JSON-text = object/array
這些是六個結構特徵:
begin-array = ws %x5B ws ; [ left square bracket begin-object = ws %x7B ws ; { left curly bracket end-array = ws %x5D ws ; ] right square bracket end-object = ws %x7D ws ; } right curly bracket name-separator = ws %x3A ws ; : colon value-separator = ws %x2C ws ; , comma
不重要的空白之前或之後的任何六種 結構特徵的允許的。
JSON應該是空白不敏感的。我想在技術上JSON.org的規範說「空白可以插入之間任何令牌對,」但解析器將不得不是非常迂腐,抱怨第一個令牌之前或最後一個空白。