回答
否。任何有效的字符串都是有效的鍵。它甚至可以有"
只要你逃避它:
{"The \"meaning\" of life":42}
有可能是一個機會,你會遇到這樣的裝載值到一些語言,它試圖與對象的字段名稱鍵關聯的困難。但是,我不知道有這種情況。
Thx!任何其他需要轉義的角色?喜歡:或; ? – Christophe 2011-12-30 04:18:51
不是那些。無論在JavaScript中需要轉義,通常都需要使用JSON。儘管如此,最好還是從json.org那裏獲取它的信息。大約需要一分鐘時間才能完整閱讀整個規範。 – 2011-12-30 04:21:01
這不是一個好的回答。哪種角色需要逃脫?哪些角色可以逃脫,但不必逃脫? – DanFromGermany 2015-12-18 12:20:46
以下字符必須以JSON數據進行轉義,以避免出現任何問題
'單引號
」報價
\反斜槓
所有的控制字符,如\ n \ t
JSON Parser可以幫助你處理JSON。
編輯: Here's a replacement JSON parser since OP's link is dead
嗨阿倫,單引號不需要逃脫。事實上,轉義它們會導致嚴格的JSON解析器拋出異常。請參閱http://www.json.org的字符串部分當然,您需要在JSON字符串內部(而不是JSON本身)將其轉義。 – 2014-01-04 17:59:02
@AlexKey你完全正確! Arun,你可以通過測試JSON'{「singlequotetest」:「這裏的東西不正確」}與'{「singlequotetest」:[jsonlint.com](http://jsonlint.com/) 「修理這裏什麼是不對的」} – 2014-09-23 10:51:05
@阿倫拉納 - 不用擔心。 – 2014-09-23 12:55:39
Unicode代碼點U + D800到U + DFFF必須避免:它們是invalid以Unicode,因爲它們被保留用於UTF-16代理對。一些JSON編碼器/解碼器將用U + FFFD替換它們。見例如how the Go language and its JSON library deals with them。
因此,避免將「\ uD800」單獨設置爲「\ uDFFF」(不在代理對中)。
值得一提的是,雖然用數字開始鍵是有效的,但可能會導致一些意想不到的問題。
IE:
var testObject = {
"1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround
我真的很希望,在2017/18年的微軟,他們對自己造成的所有痛苦表示遺憾。 – monsto 2017-12-08 21:47:38
查看他們的指標ID參數:https://dev.applicationinsights.io/apiexplorer/metrics?appId=DEMO_APP&apiKey=DEMO_KEY&metricId=requests%2Fcount×pan=PT1H --- 15或20個字段的json字段中有多個正斜槓名。雖然Karns解決方案適用於特定的領域,但似乎無法使其適用於1tile的子領域。例如,後面的點返回給我未定義。 – 2017-12-22 03:21:29
- 1. JSCH - 私有密鑰無效
- 2. JSON密鑰名稱?
- 3. 什麼是appSettings密鑰有效字符?
- 4. jwt密鑰無效
- 5. 無效的簽名密鑰IdentityServer4
- 6. 爲Redis密鑰命名約定和有效字符
- 7. JSON有效字符
- 8. Azure表存儲名稱 - 無效字符
- 9. Modx無效字符電視名稱
- 10. git log無效字符集名稱
- 11. C#Xml - 無效的名稱字符; ''字符不能包含在名稱中
- 12. 獲取JSON密鑰名稱
- 13. 無效的字段名稱
- 14. Terraform>資源>名稱 - 無效或未知密鑰
- 15. Java對稱加密程序中的密鑰大小無效
- 16. GCM API密鑰無效。在PushBots中
- 17. API密鑰無效Yandex Translate
- 18. cPickle.UnpicklingError:無效加載密鑰
- 19. Google API密鑰無效
- 20. 密鑰'attachdbfilename'的值無效
- 21. 無效的密鑰哈希
- 22. SimpleSchema無效密鑰「_id required」
- 23. Mandrill無效密鑰錯誤
- 24. 公共ssh密鑰無效
- 25. 無效密鑰異常
- 26. Firebase API密鑰無效
- 27. 檢查無效的密鑰
- 28. iOS Payumoney SDK密鑰無效
- 29. 密鑰庫無效問題?
- 30. UnpicklingError無效加載密鑰,'{'
我認爲部分這個答案與你編碼的方式做。例如,對於ANSI,UTF8允許使用不同的字符。 – invalidsyntax 2011-12-30 04:00:14
你可以使用'obj ['whatever']'符號在JS中使用任何'key'。但是'obj.whatever'版本只能使用普通的字母數字鍵。 – 2011-12-30 04:05:30
@invalidsyntax:根據定義JSON是Unicode。另外,ANSI不是一種編碼,它是一種字符集,所以比較應該是Unicode-vs-ANSI,而不是UTF-8-vs-ANSI。 – 2011-12-30 04:06:14