javascript 在react-native领域中存储数组

aij0ehis  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(133)

我似乎不能从JSON存储数组到我的realm数据库。假设返回给我的json是:

  1. contact:
  2. {
  3. name: 'Test Name',
  4. contactDetails: [ '4354354', '099324' ]
  5. },

如何将contactDetails插入到realm中?
我试着根据How to store [String] or [Int] in react-native realm创建一个这样的自定义对象:

  1. class stringObject extends Realm.Object {}
  2. stringObject.schema = {
  3. name: 'stringObject',
  4. properties: { value : 'string' }
  5. };

并尝试将以下内容添加到架构中:

  1. contactDetails: {type: 'list', objectType: 'stringObject'}

但是它不能插入到领域中。我尝试清空stringObject属性中的值,但仍然不起作用。

gopyfrb3

gopyfrb31#

Realm中的列表包含对象,因此您需要在插入之前将JSON转换为正确的形式。对于您提供的模式,您需要在调用realm.create之前转换contactDetails以表示有效StringObject对象的数组:

  1. contactDetails: [ '4354354', '099324' ]

  1. contactDetails: [ { value: '4354354' }, { value: '099324' } ]

您可以使用Array.map来执行此操作,如下所示:

  1. json.contactDetails = json.contactDetails.map( s => ({ value: s }) );
bybem2ql

bybem2ql2#

在方案的属性中:

  1. contactDetails: { type: 'string?[]' },

相关问题