JSON.stringify可以將ANY javascript變量轉換爲文本嗎? 還是有限制(功能,原型等)?所有的JavaScript變量JSON序列化?
2
A
回答
2
有兩種回答您的問題:
- 答案很簡單:沒有,看到各種反例(如DOM對象,函數,只是自己嘗試一下在提示)。
- 複雜的答案:是的,JSON.stringify可以將任何JavaScript表達式轉換爲任何JSON子表達式。沒有大的限制。
需要注意的是,它默認情況下不能這樣做,並且它不能以任何標準化的方式這樣做。爲不必要的混淆使用JSON作爲輸入
function(key,value) {
if (SPECIALLOGIC) {
// ... return some special value
// like {__SPECIAL__:'datetime', value:'some_custom_encoding'}
} else
return value;
}
5
JSON.stringify(JSON.stringify)
這將返回undefined; JSON不支持功能。
JSON.stringify(/JSON.stringify/)
返回"{}"
; JSON.stringify跳過不可枚舉的屬性。
JSON.stringify(JSON)
這將返回"{}"
; JSON.stringify跳過返回不受支持的值的屬性。
JSON.stringify(JSON.JSON = JSON)
這會引發異常; JSON不支持循環引用。
2
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
如果未定義,函數,或一個XML值轉換期間遇到它要麼省略(當它在一個對象被發現)或截尾爲null(當它在陣列中被發現)。
1
限制包括對包含觸發異常的循環引用的對象進行字符串化。
JSON.stringify(document);
// TypeError: Converting circular structure to JSON
相關問題
- 1. Json序列化變量PropertyName
- 2. DataContractSerializer不反序列化所有變量
- 3. 序列化的Json與變量名
- 4. 反序列化具有無效變量名稱的嵌套json
- 5. 反序列化Json的時候進入的變化量
- 6. 反序列化JSON改變
- 7. JSON陣列結構的變化所
- 8. 序列化的jQuery變量
- 9. 改變TD變化的所有列
- 10. javascript不處理所有返回的json變量
- 11. 用於JSON的Javascript表單序列化
- 12. spring webflow變量序列化
- 13. 反序列化cookie變量
- 14. 的Json反序列化元組命名的變量
- 15. 列中所有行的可變變量
- 16. Javascript JSON變量父
- 17. json from javascript變量
- 18. 反序列化嵌套的JSON數據並分配到變量
- 19. 試圖反序列化嵌套的JSON變量
- 20. JSON序列化可變數量的屬性
- 21. Json序列化接受布爾變量的數值輸入
- 22. 在JSon中反序列化數組中的一個變量。 C#
- 23. C#Json序列化:作爲數組的多個變量
- 24. 傑克遜反序列化的變量作爲JSON字符串
- 25. C#Json反序列化 - 作爲變量的屬性
- 26. 序列化所有領域
- 27. 序列化具有相同變量的varing數據類型的JSON
- 28. 將具有變量名/值對的JSON反序列化爲C中的對象#
- 29. 的Json序列化
- 30. JSON序列化
不完全正確(關於複雜的答案) - JSON.stringify不會轉換循環數據結構。例如:'var x = {}; var y = {link:x}; x.link = y;'不會被字符串化。 – kamituel
kamituel:謝謝;意識到,可能應該就此發表一個旁註。技術上(努力)我認爲可以將循環引用指定爲特殊記錄(遍歷樹,將所有內容放入散列表),然後在反序列化時重新生成引用。 – ninjagecko