0

我在 Couchbase 中保存了一个具有 javascript 日期值的文档,并希望得到它完全相同,而不是字符串 '2016-01-02T12:13:14Z'。

通过使用JSON.parse的第二个参数,找到了一种使用纯 Javascript 实现此目的的方法,但 Couchbase 在内部进行反序列化并且不能真正使用它。

有什么方法可以禁用 Couchbase 反序列化,并避免做JSON.stringify+JSON.parse并且既不深度遍历对象?

bucket.get(key, (err, result) => {
    if (err) {
        //deal with error here
    } else {
        //here "result.value" is already deserialized
        done(result.value);
    }
});
4

1 回答 1

1

您可能知道,JSON 和 Date 对象处理可能有点具体,具体取决于您要执行的操作。我们倾向于坚持默认设置。您正在寻找的是一个相当高级的用例。目前,我们没有直接支持改变我们进行解析的方式。

但是,有一个接口。它被称为“转码器”,它可以让您非常具体地了解如何处理将传入数据转换为存储的内容。我没有一个例子来说明你想要做什么,但是在测试中显示了一个在较低层开始寻找这个的好地方。

但是,在应用程序级别以不同方式处理您存储的任何内容可能会更容易。根据我对您指向的 revivier 参数的阅读,那只是在检索时。没有什么能阻止你包装那个 get() 然后改变对象,然后以非常低的成本将它传递到下一层,我相信。

于 2016-03-28T23:43:04.610 回答