Realm对象和反序列化包含带有整数和字符串的数组的数组,以便与Realm一起使用

时间:2016-04-01 14:02:11

标签: android json gson realm

我的问题是我应该如何反序列化以及如何看待领域对象"特色"内部数组包含一个字符串和一个整数。 我正在使用带有gson的领域。我收到一个如下所示的JSON: `

{  
"status":200,
   "message":"",
   "data":{  
      "specialties":[  
         [  
            "allergist",
            1
         ],
         [  
            "anesthesiologist",
            1
         ],
         [  
            "cardiologist",
            1
         ],
         [  
            "dermatologist",
            0
         ],
         [  
            "gastroenterologist",
            1
         ],
         [  
            "hematologist",
            1
         ],
         [  
            "nephrologist",
            0
         ],
         ...
      ]
   }
}

`

2 个答案:

答案 0 :(得分:2)

从技术上讲,你的问题是这个

[  
     "allergist",
     1
],

完全应该是一个对象,比如

{
    "speciality": "allergist",
    "value": 1
}

在这种情况下,Realm可以轻松处理它,但事实并非如此,您需要将这些[["hello", 2], ["world", 3]]对象映射/转换为可用作类型的对象RealmObject然后坚持下去。因为目前这是List<List<Object>>

答案 1 :(得分:1)

在这种情况下,这不是Realm可以支持的。 Realm目前不支持列表列表(我在这里创建了一个问题:https://github.com/realm/realm-java/issues/2549)。但即使解决了这个问题,你仍然需要找到列表的通用类型。 Realm不允许您保存任意对象。在您的情况下,您可能必须将整数转换为字符串。

现在解决方法是将每个子列表转换为类型化对象。那将要求你为它编写一个自定义GSON解串器。这里有一个如何做到这一点的指南:https://realm.io/docs/java/latest/#primitive-lists