gson反序列化到字典

时间:2012-02-16 01:36:12

标签: deserialization gson

Json String:

{
    "results": [
      {
        "person": {
          "age": 38,       
          "name": "Ed Helms", 
          "roles_map": {
            "Director": [
              {                         
                "id": 336,              
                "title": "The Office", 
                "type": "tv"             
             }
            ], 
            "Star": [
              {
                "id": 336,              
                "title": "The Office", 
                "type": "tv"             
              }, 
              {
                "id": 336,              
                "title": "The Office", 
                "type": "tv"             
              }
            ]
          }, 
          "text": "ed-harris"
        }
      }
    ]
}

如果你看到“roles_map”,“导演”和& 'Star'就像键,可以将对象数组作为值。 由于键可能很多,我不能把类命名为Director / Star等。 我知道我应该使用Custom Deserializer,但不知道具体如何。 这个answer显示了什么可行,但我无法使其发挥作用。

更新: 如果我做简单的gson.fromJson(str,RootObject)它会工作。但由于Director / Star是角色,因此数据而不是类。而且可能会有更多的角色。所以我需要把这些角色放到字典而不是类中。

工作班:

 class Director
{
    public int id ;
    public String title ;
    public String type ;
}

 class Star
{
    public int id ;
    public String title ;
    public String type ;
}

 class RolesMap
{
    public List<Director> Director ;
    public List<Star> Star ;
}

 class Person
{
    public int age ;
    public String name ;
    public RolesMap roles_map ;
    public String text ;
}

 class Result
{
    public Person person ;
}

 class RootObject
{
    public List<Result> results ;
}

预期课程:

class Show
{
    public int id ;
    public String title ;
    public String type ;
}
 class Person
{
    public int age ;
    public String name ;
    public HashMap<String, Show[]> RolesMap;
    public String text ;
}

 class Result
{
    public Person person ;
}

 class RootObject
{
    public Result[] results ;
}

0 个答案:

没有答案