javascript - 如何对事件对象进行字符串化?

JSON.stringify(eventObject);

给予:

TypeError: 将循环结构转换为 JSON


dojox.json.ref.toJson(eventObject);

给予:

TypeError:在无法选择的输入元素上访问 selectionEnd。


是否有一些库/代码可以用来完成它?

最佳答案

您将无法使用 JSON.stringify 序列化事件对象,因为事件对象包含对 DOM 节点的引用,并且 DOM 到处都有循环引用(例如,子/父关系)。默认情况下 JSON 无法处理这些,所以你有点不走运。

我建议看看 How to serialize DOM node to JSON even if there are circular references?其中有一些关于如何序列化 DOM 节点的建议。此外,以下问题似乎提供了有用的信息:

  • How to save an object with circular references?
  • Stringify (convert to JSON) a JavaScript object with circular reference

能够处理循环引用的 JSON 库似乎是

  • JSON-js (see cycle.js)
  • dojox.json.ref

或者,如果你不需要它们,你可以删除所有对 DOM 节点的引用,然后序列化对象。 毕竟你不应该这样做。见@PointedEars 评论:)

https://stackoverflow.com/questions/11547672/

相关文章:

java - Jersey:具有 1 个元素的 Json 数组被序列化为对象

json - JSON 和 Protocol Buffer 之间是否有标准映射?

c# - 从 C# 类生成 JSON 模式

android - 为 Google Analytics 生成配置文件时无法选择其他 Google

c++ - JSON 模式验证

json - golang json编码(marshal): how to omit empty n

javascript - 我应该如何在 JSON 中表示表格数据?

java - 从 HttpResponse 获取 json

json - 来自 JSON 字符串的 typescript `enum`

json - REST API 错误代码返回结构