首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Realm.js:将非结构化对象存储为属性

Realm.js:将非结构化对象存储为属性
EN

Stack Overflow用户
提问于 2016-07-21 13:50:37
回答 2查看 3.3K关注 0票数 7

我们有一个内容交付应用程序,在该应用程序中,我们在JSON上删除了结构上的动态对象。React本机使用JSON,并从这些对象构建用户界面。

这是我现在正在使用的模式:

代码语言:javascript
复制
const CardSchema = {
    name: 'Card',
    properties: {
        id: 'string',
        cardSubType: 'string',
        cardType: 'string',
        state: 'string',
        contentType: 'string',
        context: {},
    },
};

字段context是动态部分。它基本上是一个可以有任意数量字段的对象。我们不知道在编译时哪些字段在那里。

我们希望使用realm.js来持久化我们的数据,因为它非常快速,而且我们在编译时可以对99%的对象进行模块化。

我们只想在这个字段(和其他几个字段)上存储任何对象。

这是可能的领域反应本土吗?或者,我是否需要将其建模为字符串,并在存储时进行序列化,在加载时进行反序列化?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-23 00:50:13

领域还不支持存储字典/动态对象。这无疑是路线图上的一些东西,因为能够简单地存储和检索JSON对象是非常自然的。在字典得到完全支持之前,您需要按照建议将数据存储为字符串,或者创建自己的JSON模型。有点像

代码语言:javascript
复制
const UNDEFINEDTYPE = 0;
const INTTYPE = 1;
const STRINGTYPE = 2;

const JSONValueSchema = {
    name: 'JSONValue',
    properties: {
        type: 'int',
        stringValue: { type: 'string', optional: true },
        intValue:    { type: 'int', optional: true },
        jsonValue:   { type: 'JSON', optional: true },        
    }
};

const JSONEntrySchema = {
    name: 'JSONEntry',
    properties: {
        key: 'string',
        value: 'string'
    }
};

const JSONSchema = {
    name: 'JSON',
    properties: {
        entries: { type: 'list', objectType: 'JSONEntry' }
    }
}

这样做有点冗长,但它将允许您在keyPath查询中充分使用查询系统,其中存储JSON将迫使您使用CONTAINS查询。不确定您的应用程序是否值得付出所有的努力。

票数 6
EN

Stack Overflow用户

发布于 2022-11-14 18:37:07

对于任何基于这个答案的人来说,字典现在是一个领域,可以存储动态数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38506128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档