回答
否。任何有效的字符串都是有效的鍵。它甚至可以有"
只要你逃避它:
{"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. 無效的簽名密鑰IdentityServer4
- 3. JSON有效字符
- 4. Azure表存儲名稱 - 無效字符
- 5. C#Xml - 無效的名稱字符; ''字符不能包含在名稱中
- 6. 獲取JSON密鑰名稱
- 7. Terraform>資源>名稱 - 無效或未知密鑰
- 8. 密鑰庫無效問題?
- 9. iOS Payumoney SDK密鑰無效
- 10. 無效密鑰異常
- 11. SimpleSchema無效密鑰「_id required」
- 12. Mandrill無效密鑰錯誤
- 13. cPickle.UnpicklingError:無效加載密鑰
- 14. 密鑰'attachdbfilename'的值無效
- 15. API密鑰無效Yandex Translate
- 16. Firebase API密鑰無效
- 17. JSON無效字符錯誤
- 18. 無效的JSON字符
- 19. JSON無效:隱形字符?
- 20. 當用oauth簽名發佈數據時,Flickr API拋出「無效的API密鑰(密鑰具有無效格式)」
- 21. 哪些字符在XML中傳遞的無效登錄
- 22. kivy:「無效的屬性名稱」爲有效的屬性名稱
- 23. 無效列名稱
- 24. 哪些字符在couchdb-lucene鍵中有效?
- 25. SEVERE:無效的密鑰庫格式java.io.IOException:無效的密鑰庫格式
- 26. 在XML文件中寫入時名稱字符錯誤無效
- 27. Facebook Messenger - 無效密鑰類型,有效負載
- 28. 無有效iPhone代碼簽名密鑰即使刪除Entitlements.plist
- 29. Android:屬性名稱具有無效字符''
- 30. 標籤<permission>屬性名稱有無效字符「$」
我認爲部分這個答案與你編碼的方式做。例如,對於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