领域 - 用于多维JSON的createOrUpdateAllFromJson

时间:2016-06-30 06:30:49

标签: android realm

我尝试将REALM ORM库用于我的项目,我遇到了createOrUpdateAllFromJson的问题。

我的JSON是:

[
  {
    "id":"487745454",
    "barcode":"84555453",
    "items":{
      "12456788":{
        "id":"12456788",
        "name":"Item1"
      },
      "12456789":{
        "id":"12456789",
        "name":"Item2"
      }
    }
  },
  {
    "id":"487745455",
    "barcode":"84555453",
    "items":{
      "12456788":{
        "id":"12456788",
        "name":"Item1"
      },
      "12456791":{
        "id":"12456789",
        "name":"Item10"
      }
    }
  }
]

我可以获取条形码和ID,但不能从include对象获取名称。 我的获取id和条形码的课程是

public class Notepad extends RealmObject {

    @PrimaryKey
    private int id;

    private String barcode;
    private RealmList<Items> items;
 }

项目是:

public class Items extends RealmObject {

  @PrimaryKey
  private int id;
  private String name;
}

我的问题是,如何通过createOrUpdateAllFromJson获取Item对象的名称

我不会更改返回此JSON的API。

请帮帮我

1 个答案:

答案 0 :(得分:0)

"items":{
    "12456788": {
        "id": "12456788",
        "name": "Item1"
    },
    "12456791": {
        "id": "12456789",
        "name": "Item10"
    }
}

&#34; item&#34;的值是一个对象,但您尝试将其解析为RealmList。这不会奏效。还因为你的id是字符串而不是int。如果你的json是

,它会有用
"items": [
    {
        "id": 12456788,
        "name": "Item1"
    },
    {
        "id": 12456789,
        "name": "Item10"
    }
]

我知道你不能控制json结构,但我强烈建议你联系那个做过的人并要求他改变它。

当前的json结构将转换为java中的Map<String, Item>,这不是Realm支持的内容,除非您要手动解析json。