簡體   English   中英

如何在特殊情況下避免JSON.stringify返回undefined,並以這種方式為JSON.parse創建失敗的字符串?

[英]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字符串"{}" ,因為({}).abcundefined 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM