RealmJson.Extensions - 如何导入整个JSOn?

时间:2018-04-15 22:11:04

标签: json xamarin realm

我正在使用https://github.com/sushihangover/Realm.Json.Extensions将JSON导入我的领域数据库。但是,只创建了顶级对象,而不是JSON中的所有嵌套对象。

下面是一个例子。想象一下三个类:A,B和C. A包含B和B,包含C.

 public class A : RealmObject
{
    [PrimaryKey]
    public string Id { get; set; } = Guid.NewGuid().ToString();
    [Backlink(nameof(B.A))]
    public IQueryable<B> BList { get; }
}

public class B : RealmObject
{
    [PrimaryKey]
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public A A { get; set; }
    [Backlink(nameof(C.B))]
    public IQueryable<C> CList { get; }
}

public class C : RealmObject
{
    [PrimaryKey]
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public B B { get; set; }
}

当我将数据库导出到json时,我得到以下内容:

{
  "$id": "1",
  "Id": "979e7341-0d16-4ba4-b91b-31ec81bb18ad",
  "BList": [
    {
      "$id": "2",
      "Id": "dbb35317-eae0-4978-9675-e0246805fc34",
      "CList": [
        {
          "$id": "3",
          "Id": "2da5ac92-bc73-4f80-8a27-051bbf4e5e66",
        },
        {
          "$id": "4",
          "Id": "a40f7f12-7eee-47ee-845f-4481b72c0109",
        },
        {
          "$id": "5",
          "Id": "37606fc1-74a0-4a9e-a802-587076429edc",
        }
      ]
    }
  ]
}

然而,当我打电话时:

using (var r = Realm.GetInstance()) {
   var s = r.CreateObjectFromJson<A>(json);
}

只创建父对象A而没有任何子对象(1 B对象和3 C对象)。

有什么建议吗?

0 个答案:

没有答案