【问题标题】:convert nested realm object to json in react-native在 react-native 中将嵌套领域对象转换为 json
【发布时间】:2018-03-15 21:57:33
【问题描述】:

我在我的 react-native 应用程序中定义了嵌套领域对象:

export const userSchema = {
  name: 'User',
  primaryKey: 'id',
  properties: {
    id: 'string',
    user_id: 'string',
    password: 'string',
    demographics: 'Demographics',
    notes: 'string'
  }
}

export const demographicsSchema = {
  name: 'Demographics',
  primaryKey: 'id',
  properties: {
    id: 'int',
    age: 'int',
    height: 'float',
    weight: 'float',
    gender: 'int',
  }
}

当我从领域查询User 时,我想将其转换为Json 并通过http 请求发送到后端服务器。但是,在搜索将领域对象转换为 Json 的模块后,我没有找到任何有用的内容来执行此特定任务。如果有人知道在 react-native 中将嵌套领域对象转换为 Json 的简单方法,我将不胜感激。

【问题讨论】:

  • 它是一个嵌套对象,我想你应该看看这个问题stackoverflow.com/questions/30174970/…
  • @AbdeslemCharif 不是我要找的,realmObject 是不同的。
  • 它们与嵌套对象有什么不同?
  • @AbdeslemCharif 是的,我特别要求将 realmObject 序列化为 Json。如果要使用gson,至少要知道字符串结构是什么样子的。

标签: javascript react-native realm


【解决方案1】:

目前Realm并没有在他的api中集成这种功能,但是你可以试试这样的:

function realmToPlainObject(realmObj) {
  return JSON.parse(JSON.stringify(realmObj));
}

或者像那样,但它会很慢! :

var plainResults = Array.prototype.map.call(resultsCars, (car) => {
  var object = {};

  for (var property of YourSchema.properties) {
    object[name] = car[name];
  }

  return object;
});

我知道这可能是多余的,但更好的方法是通过在 realmObject 中获取所需的每个键来创建 json 对象。

【讨论】:

  • 这真的很不舒服
  • 我知道...但是尝试使用JSON.parseJSON.stringify 的第一个函数,应该会很好用! :)
  • 呃...不是真的。如果您的字段中至少有一个是此 RealmObject 中的列表类型,并且该列表类型中有太多条目,则执行此函数的计算成本很高。例如,如果您有一个字段为car: 'Car[]',并且该列表中有数千个Cars,则此函数可能需要相当长的时间才能完成。
  • 是的,我知道如果你有大的嵌套对象,那将会很长时间......但实际上我从 Realm 和官方文档中知道没有其他解决方案......
  • 是的,这很可悲,因为复制Proxy对象中的值并非易事
猜你喜欢
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多