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);
最佳答案
一个对象在某处引用自己;因此消息“循环结构”。我怀疑它可能在 HTMLDivElement
中。您是将它仅用于调试目的还是您真的想用这个 JSON 做一些有意义的事情?如果你只是用它来调试,大多数现代 JavaScript 调试器会让你只将一个对象记录到控制台。如果你真的想对数据做些什么,你应该只从这个对象中提取你需要的东西,并将它们放入一个新的精简对象中,你可以将它传递给 JSON.stringify
。这个对象看起来像是来自 Google API,并且其中有很多额外的数据。
如果您不介意破坏性地修改对象,请尝试有选择地清除可疑字段并查看 JSON.stringify 是否会接受该对象。至少这样你就会知道是什么原因造成的。请注意,如果您这样做,您最终可能会破坏该对象以备将来使用。
关于javascript - 将 JSON 转换为字符串时如何解决此 Javascript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4954242/