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

标签: json Android gson
发布时间: 2016/6/29 22:11:27
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在做一个登录。如果数据是正确返回以下内容 ︰

{
   "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:

我建议你这种方式 ︰

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 架构 2 Pojo和生成您 Pojo

官方微信
官方QQ群
31647020