一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - json - 詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題

詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題

2022-02-20 17:31汪子熙 json

這篇文章主要介紹了詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

程序員在日常做TypeScript/JavaScript開發(fā)時,經(jīng)常需要將復(fù)雜的JavaScript對象通過JSON.stringify序列化成json字符串,保存到本地以便后續(xù)具體分析。

詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題

然而如果JavaScript對象本身包含循環(huán)引用,則JSON.stringify不能正常工作,錯誤消息:

VM415:1 Uncaught TypeError: Converting circular structure to JSON

詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題

解決方案,使用下面這段來自這個網(wǎng)站的代碼,定義一個全局cache數(shù)組,每當(dāng)待序列化的JavaScript對象的屬性被遍歷時,將該屬性對應(yīng)的值存儲到cache數(shù)組去。

如果遍歷時發(fā)現(xiàn),有屬性值已經(jīng)在cache數(shù)組里有值了,說明檢測到了循環(huán)引用,此時直接return退出循環(huán)即可。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
var cache = [];
var str = JSON.stringify(o, function(key, value) {
  if (typeof value === 'object' && value !== null) {
    if (cache.indexOf(value) !== -1) {
      // 移除
      return;
    }
    // 收集所有的值
    cache.push(value);
  }
  return value;
});
cache = null; // 清空變量,便于垃圾回收機制回收

使用這種辦法,我成功將一個存在循環(huán)引用的JavaScript對象序列化成字符串了。

詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題

到此這篇關(guān)于詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題的文章就介紹到這了,更多相關(guān)JSON.stringify 循環(huán)引用內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/i042416/article/details/113891195

延伸 · 閱讀

精彩推薦
  • json一文看懂JSONP原理和應(yīng)用

    一文看懂JSONP原理和應(yīng)用

    這篇文章主要介紹了一文看懂JSONP原理和應(yīng)用,對JSONP感興趣的同學(xué),可以參考下...

    云中的魚7692022-03-07
  • json使Ext的Template可以解析二層的json數(shù)據(jù)的方法

    使Ext的Template可以解析二層的json數(shù)據(jù)的方法

    使Ext的Template可以解析二層的json數(shù)據(jù)的方法...

    json教程網(wǎng)4982022-01-03
  • jsonJSON學(xué)習(xí)筆記

    JSON學(xué)習(xí)筆記

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,同時也易于機器解析和生成。它基于ECMA262語言規(guī)范(1999-12第三版)中JavaScript編...

    JSON教程網(wǎng)3652022-01-03
  • jsonXML的代替者----JSON

    XML的代替者----JSON

    我個人覺得PHP與Javascript各有長處,如果能完美的結(jié)合起來,那將創(chuàng)造出許許多多的奇跡!我是初次寫此類文章,Bug難免,請各位指正~ 現(xiàn)在AJAX應(yīng)用非常流行...

    JSON教程網(wǎng)7332022-01-03
  • json看了就知道什么是JSON

    看了就知道什么是JSON

    JSON(Javascript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。它基于Javascript Programming Language, Standard ECMA-262 ...

    JSON教程網(wǎng)6042022-01-03
  • json用 JSON 處理緩存

    用 JSON 處理緩存

    使用 JSON(即 JavaScript Object Notation),將以一種特定的字符串形式來表示 JavaScript 對象。如果將具有這樣一種形式的字符串賦給任意一個 JavaScript 變量,該...

    JSON教程網(wǎng)9032022-01-03
  • json厲害了,ECMAScript 新提案:JSON模塊

    厲害了,ECMAScript 新提案:JSON模塊

    第三階段的一個名為JSON模塊的新提議,提出了一種將JSON導(dǎo)入到ES模塊的方法。現(xiàn)在,我們來看看JSON模塊是如何工作的。...

    大遷世界11352021-12-27
  • json告訴大家什么是JSON

    告訴大家什么是JSON

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。...

    json教程網(wǎng)6632022-01-03
主站蜘蛛池模板: 成人在线播放 | 四虎在线网址 | 日本不卡视频免费的 | 国产99久久精品一区二区 | 午夜精品久久久 | 亚洲国产精品嫩草影院永久 | 男人扒开女人下身添 | 日韩一区二区三区四区区区 | 国产白白视频在线观看2 | 日韩免费在线视频 | 欧美另类69xxx | 特黄特色大片免费视频播放 | 99av麻豆| 2048论坛永久入口 原创合集 | 亚洲国产成人久久综合一区 | 亚洲国产果果在线播放在线 | 性奶乳妇 | 亚洲欧美成人综合在线 | 国产福利资源网在线观看 | 国产男人搡女人免费视频 | 亚洲男人天堂网站 | 欧美成人v视频免费看 | 侮辱丰满美丽的人妻 | 幸福草电视剧演员表介绍 | 免费一级特黄特色大片在线 | 人皮高跟鞋在线观看 | 999精品视频在线观看热6 | 免费超级乱淫播放手机版 | 欧美一区二区三区精品国产 | 久久成人国产精品一区二区 | 精品国产91久久久久 | 国内久久精品 | www日本在线观看 | 日产国产精品亚洲系列 | 四大美女思春艳史片 | 亚洲成年人专区 | sao虎在线精品永久在线 | 亚洲精品短视频 | 亚洲欧美日韩国产精品影院 | 特黄特色大片免费影院 | 欧美高清片 |