Javascript 将Popcorn.js TrackedEvents导出为jSON

Javascript 将Popcorn.js TrackedEvents导出为jSON,javascript,json,popcornjs,Javascript,Json,Popcornjs,我正在用Popcorn.js构建一个视频注释编辑器。当用户想要发布评论=脚注并输入文本和持续时间时,可以单击视频。我添加了如下脚注: p = pop.footnote({ start: 0, end: duration, text: text, target: "footnotediv" }); 添加所有脚注后,我希望将数据存储到数据库中。但是我怎样才能得到一个好格式的所有脚注呢?我试过了 JSON.stringify(pop.getTrackEvents()) 但是它包含了很多不必要的东西

我正在用Popcorn.js构建一个视频注释编辑器。当用户想要发布评论=脚注并输入文本和持续时间时,可以单击视频。我添加了如下脚注:

p = pop.footnote({
start: 0,
end: duration,
text: text,
target: "footnotediv"
});
添加所有脚注后,我希望将数据存储到数据库中。但是我怎样才能得到一个好格式的所有脚注呢?我试过了

JSON.stringify(pop.getTrackEvents())
但是它包含了很多不必要的东西。在将脚注添加到爆米花之前,是否有其他方法或应该将所有脚注存储在自己的数据结构中


Thx提供任何帮助。

不幸的是,Popcorn不会为您这样做,因为它将其私有数据存储在与插件特定、用户指定数据相同的对象上。这些跟踪事件对象中的每一个都有一堆私有的东西,比如本地人、合成、运行等等,有时还有半私有的东西,可以通过插件添加,例如容器

如果您想自己过滤掉这些字段,您可以将不想保存的字段列入黑名单,也可以将要保存的字段列入白名单。如果你有很多不同的插件,并且你并不总是知道你需要哪些字段,那么就选择黑名单。但老实说,在做了几次之后,我建议您在爆米花之外编写自己的数据结构

但如果你所做的只是脚注,那就相对简单了,白名单方法应该能奏效。像这样:

var trackEvents = pop.getTrackEvents();
trackEvents = trackEvents.map(function (trackEvent) {
    return {
        start: trackEvent.start,
        end: trackEvent.end,
        text: trackEvent.text
    };
});
saveData(JSON.stringify(trackEvents));