將對象轉換為 Json Javascript

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

循環結構是指自身的對象。在以下示例中,對象 (obj) 被引用為位置鍵的值。

與 XML 一樣,JSON(JavaScript 對象表示法)用於數據存儲和交換。 JSON 比 XML 更容易解析或拆分,最好在使用 JSON.stringify () 方法將對象轉換為字符串時使用。

將循環結構轉換為 JSON 時出錯

h2>

JSON 不支持對象引用,因此嘗試鏈接引用自身的 JSON 對象將導致拼寫錯誤。當您嘗試更改無法更改的值或不當使用值時,可能會生成此錯誤。

<輸入類型=“隱藏”名稱=“ck_campaign”值=“ft-express-wgt-blog”><輸入類型=“隱藏”名稱=“ flow” value = “sft” >
Screenshot 402

可能的解決方案

JSON.chaaîne ify () 不僅轉換鏈的可接受產品,它還包含一個替換參數,如果指定傳輸函數,則可以替換值。分析下面的代碼以了解這是如何發生的。

在我們的 replaceFunc 上面,我們調用WeakSet,這是一個存儲鬆散對像或對象引用的對象。WeakSet的每個對像只能出現一次,從而過濾掉重複或循環r 數據。 new 關鍵字是一個創建空對象的運算符。

在我們的 return 語句中,我們嵌套了 if 語句。我們的第一個 if 語句使用 typeof 運算符,它返回要評估的基元類型(Undefined、Null、Boolean、Number、String、Function、BigInt、Symbol)。

如果我們的值類型嚴格等於一個對象,並且該對象的值不為零,它會在第二個繼續if 語句,檢查值是否在 WeakSet().

當我們調用JSON.stringify (),我們將原始循環結構和替換函數都傳遞給我們。

這將在控制台中為我們提供所需的字符串結果。

; "{" name ":" John "," age ": 23," gender ":" Male "}"

其他可能解決此錯誤的方法是使用庫,例如as circular-json ,即循環JSON解析器,或cycle.js,為 IE8 用戶創建。

循環 JSON 序列化和反序列化其他有效的 JSON 對象,其中包含對專用 JSON 格式的循環引用。

結論

JSON 不支持對象引用,因此如果您嘗試鏈接引用自身的 JSON 對象,則會出現拼寫錯誤。

循環結構是引用自身的對象。要能夠鏈接此類對象,開發者可以在stringify()方法中使用replace參數,確保傳入的函數過濾掉重複或循環的數據。

使用g 庫(例如 circle-json)也可以解決此錯誤。