【问题标题】:How do I solve this Javascript error when converting JSON to string?将 JSON 转换为字符串时如何解决此 Javascript 错误?
【发布时间】:2011-06-24 15:57:22
【问题描述】:
Uncaught TypeError: Converting circular structure to JSON

我要字符串化的对象是这个(我在 javascript 控制台中记录了它):

Object
GsearchResultClass: "GlocalSearch"
accuracy: "8"
addressLines: Array[2]
city: "Cupertino"
content: ""
country: "United States"
ddUrl: "http://www.google.com/maps?source=uds&daddr=10825+North+Wolfe+Road,+Cupertino,+CA+(Southland+Flavor+…"
ddUrlFromHere: "http://www.google.com/maps?source=uds&saddr=10825+North+Wolfe+Road,+Cupertino,+CA+(Southland+Flavor+…"
ddUrlToHere: "http://www.google.com/maps?source=uds&daddr=10825+North+Wolfe+Road,+Cupertino,+CA+(Southland+Flavor+…"
html: HTMLDivElement
lat: "37.335405"
listingType: "local"
lng: "-122.015386"
maxAge: 604800
phoneNumbers: Array[1]
region: "CA"
staticMapUrl: "http://maps.google.com/maps/api/staticmap?maptype=roadmap&format=gif&sensor=false&size=150x100&zoom=…"
streetAddress: "10825 North Wolfe Road"
title: "Southland Flavor Cafe"
titleNoFormatting: "Southland Flavor Cafe"
url: "http://www.google.com/maps/place?source=uds&q=stinky&cid=9384294304761453216"
viewportmode: "computed"
__proto__: Object

而我是这样做的:

JSON.stringify(theobject);

【问题讨论】:

  • 你能提供纯javascript对象文字吗?
  • 好吧,您需要在 Javascript 中的某处创建该对象。我想看看那部分。

标签: javascript jquery string json parsing


【解决方案1】:

一个对象在某处引用自己;因此消息“循环结构”。我怀疑它可能在HTMLDivElement 中。您是仅出于调试目的使用它,还是真的想用这个 JSON 做一些有意义的事情?如果您只是将它用于调试,大多数现代 JavaScript 调试器将允许您将对象记录到控制台。如果你真的想对数据做一些事情,你应该只从这个对象中取出你需要的东西,并将它们放入一个新的修剪过的对象中,你可以将它传递给JSON.stringify。该对象看起来像是来自 Google API,并且其中包含大量额外数据。

如果您不介意破坏性地修改对象,请尝试选择性地清除可疑字段并查看 JSON.stringify 是否会接受该对象。至少这样你就会知道是什么原因造成的。请注意,如果您这样做,您最终可能会破坏对象以供将来使用。

【讨论】:

  • 我在这个答案中加了一个加号,因为在 Javascript 对象中使用 html 元素我得到了同样的错误......我解决了在 stringify 之前清理 html
【解决方案2】:

遇到同样的问题,原来我是个白痴,忘记了要插入 JSON 对象的元素末尾的 .val()。

确保您没有将整个元素推入 JSON 对象,否则它将尝试对无效 JSON 的内容进行 JSON 编码。

【讨论】:

    【解决方案3】:

    我会看下面的

    html: HTMLDivElement 应该取元素的 html 而不是元素本身

    或以下

    对象 -> proto -> 对象 -> proto -> 对象 -> ........

    【讨论】:

      猜你喜欢
      • 2020-09-20
      • 1970-01-01
      • 2020-04-15
      • 2013-12-18
      • 2016-11-02
      • 2015-05-10
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多