Gson反序列化JSON不同类型(ANDROID)

时间:2016-05-18 19:31:04

标签: android json gson deserialization

我正在登录。如果数据正确,请返回以下内容:

{
   "a": 1,
   "b":2,
   "c":3
}

如果数据不正确,请返回以下内容:

{
    "status": false,
    "error": {
     .... etc
     }

}

我的模特应该如何?... 我使用的是GSON。

我的代码:

Gson gson = new Gson();
//As I can get two types of answers, as would my code?
//Model model = gson.fromJson(my_json, Model.class);

1 个答案:

答案 0 :(得分:1)

我建议你这样:

if(responsecode==200){
   Model model = gson.fromJson(my_json, Model.class);
}
else if (responsecode==error){
   AnotherModel anothermodel = gson.fromJson(my_json, AnotherModel.class);
}

另一种方法是将所有可能的响应放在一个Pojo类中,比如SqueezyMo在评论中说:

{
  "a": 1,
  "b":2,
  "c":3,
  "status": false,
  "error": "wrong password"
}

将以上json示例粘贴到此站点:Json Schema 2 Pojo 并生成您的Pojo