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

服務(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
主站蜘蛛池模板: 紧身裙女教师miad711在线 | 男女拍拍拍免费视频网站 | 午夜在线a亚洲v天堂网2019 | 国产1区二区 | 日产免费自线一二区 | 97色伦图片7778久久 | 亚洲欧洲日产国码 最新 | 性欧美高清强烈性视频 | 欧洲一级黑寡妇 | 男女发生性关系视频 | caoporn超碰最新地址进入 | 波多野 在线 | 俺去也亚洲色图 | 男人桶女下面60分钟视频 | 99国产国人青青视频在线观看 | 国产福利不卡视频 | 欧美成人三级伦在线观看 | 乳环贵妇堕落开发调教番号 | 亚洲国产婷婷俺也色综合 | 国产高清国内精品福利色噜噜 | 欧美午夜精品久久久久久黑人 | 洗濯屋H纯肉动漫在线观看 武侠艳妇屈辱的张开双腿 午夜在线观看免费观看 视频 | 色综合天天综合网看在线影院 | 日本人在线看片 | 欧美男男gaysgays | 国产成人精品一区二区不卡 | 国产精品igao视频网网址 | chinese男性厕所撒尿合集 | ipx358cn出差被男上司在线 | 性做久久久久久 | 欧美一区不卡二区不卡三区 | 国产va免费精品高清在线观看 | 窝窝午夜精品一区二区 | 亚洲福利视频在线观看 | 九九热国产视频 | 星球大战成人h无删减版 | bdsm中国精品调教 | 蜜桃免费 | 色久久一个亚洲综合网 | 被黑人日 | 成人性爱视频在线观看 |