![](/img/trans.png)
[英]JSON.parse and JSON.stringify error on special character in string
[英]How to circumvent JSON.stringify returning undefined in a special case and that way creating an string failing for JSON.parse?
我使用Windows 7 64位和Firefox 32。
因此,我讀到JSON.parse無法處理類似JSON.parse("{ 'a': undefined }";
但是在以下上下文中使用JSON.stringify時,我無法定義:
console.log("'abc': " + JSON.stringify(this.nothing));
結果是
"'abc': undefined"
我在自己的函數中創建對象字符串,但是為了簡化這些函數,我將JSON.stringify用於某些變量。
我以為那會讓我站在安全的一面。
您使用的JSON工具不正確:
console.log(JSON.stringify({ abc: this.nothing }));
這將為您提供正確的JSON字符串"{}"
,因為({}).abc
是undefined
。 JSON規范不包含undefined
規定; 唯一允許的標量值為字符串,數字,布爾值和null
。 因此,其值undefined
的JavaScript屬性被“序列化”為根本不在對象中。
不要零碎使用JSON.stringify()
。 創建您的JavaScript對象結構,然后將整個內容字符串化。
您不能使用JSON.stringify
將值轉換為不支持的JSON。 undefined
的值是那些值之一。
如果使用例如JSON.stringify(null)
,則會返回字符串"null"
因為這是受支持的值。 您可以在http://json.org/上看到支持的值。
如果使用JSON.stringify(undefined)
,則不會返回字符串"undefined"
。 結果中會省略未支持的值,因為這會使結果完全為空(而不是空對象或數組),所以結果為值undefined
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.