【问题标题】:How does IPCRenderer.send() serialize data to JSON?IPCRenderer.send() 如何将数据序列化为 JSON?
【发布时间】:2019-05-24 18:08:14
【问题描述】:

我正在尝试使用 ipcRenderer.send("error", errorObject) 发送有关错误事件的信息,但我的错误对象在侦听器中被序列化为“{}”。现在,我知道 ipcRenderer 在内部将对象序列化为 JSON(更多信息:https://electronjs.org/docs/api/ipc-renderer)所以我想找出在内部调用什么方法对 JSON 进行序列化,以便我可以尝试在我的代码中覆盖它。有人可以帮忙吗?

【问题讨论】:

    标签: json serialization electron ipcrenderer


    【解决方案1】:

    我猜它正在使用JSON.stringify(),但出于安全原因它可能已序列化,所以最好不要覆盖它。顺便说一句,我认为覆盖JSON.stringify() 无论如何都不是一个好习惯。我没有注意到 ipcRenderer.send 序列化数据,我将纯 JavaScript 对象作为数据传递并且不在 ipcMain 端解析它。

    【讨论】:

    • 嘿!感谢您的建议,它适用于大多数对象,但是,在这种情况下,我想发送和错误对象,该对象被序列化为空对象“{}”。据我所知 JSON.stringify() 在对象中调用 toJSON() 方法,我编写了一个 CustomError 类扩展 Error 并尝试覆盖 toJSON() 方法 - 但它不起作用所以我猜它没有使用 JSON .stringify().
    • 也许这会有所帮助:stackoverflow.com/questions/18391212/…
    • 这是一篇很有见地的帖子,我会在那里尝试一些建议。太感谢了! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多