Json字符串javascript对象结果不匹配

Json stringify javascript Object result not match

本文关键字:结果 不匹配 对象 javascript 字符串 Json      更新时间:2023-09-26

我想把这个对象存储到数据库中,所以首先需要把它发布到后端。

Recorder {config: Object, recording: false, callbacks: Object, context: AudioContext, node: ScriptProcessorNode…}

但在JSON.stringify(recorder) 之后

结果看起来像这个

{"config":{"bufferLen":4096,"numChannels":2,"mimeType":"audio/wav"},"recording":false,"callbacks":{"getBuffer":[],"exportWAV":[]},"context":{},"node":{},"worker":{}}

为什么上下文部分遗漏了?

我发现,因为上下文是一个嵌套对象,所以我如何使用JSON.stringify作为嵌套对象?

JSON.stringify()仅与的javascript对象兼容Object()。不是像我在你的代码context: AudioContext, node: ScriptProcessorNode中看到的那样的特殊对象。如果您正在使用使用该对象进行JSON.stringify,然后它只存储属性和值,不是该对象的行为

对于特殊类别的对象,您可以使用github 中提供的serialijse插件

对于您的解决方案,下载后使用此插件

用于将其转换为字符串以存储在后端的数据库中

var serialize = serialijse.serialize;
var serializationString = serialize({config: Object, recording: false, callbacks: Object, context: AudioContext, node: ScriptProcessorNode…});

用于从数据库检索后将其转换为原始对象:

var deserialize = serialijse.deserialize;
var deserializationString = deserialize(serializationString );

我希望这对你有帮助。

在将其转换为要传递到数据库的字符串之前使用JSON.parse()(使用JSON.stringfy()),并检查您在解析时是否获得了上下文部分。

HTH