【问题标题】:Retrofit 2.0 Can't parse Json nested objectRetrofit 2.0 无法解析 Json 嵌套对象
【发布时间】:2015-12-07 21:11:36
【问题描述】:

我正在使用与 GitHub API 配合使用的 Retrofit 2.0

所以我有兴趣获得

parent" - > "full_name"

但是当我尝试运行我的代码时,这个值等于null

我尝试了很多方法,但没有任何积极的结果。所以我被这个问题困住了。

下面是我要解析的 JSON 响应:

    {
      "id": 45136403,
      "name": "android_guides",
      "full_name": "BohdanSamusko/android_guides",
      "owner": {
        "login": "BohdanSamusko",
      },
      "parent": {
        "name": "android_guides",
        "full_name": "codepath/android_guides",
        "owner": {
          "login": "codepath",
          "id": 3710273,
        },
      },
    }

POJO 类

public class Repo {
   @SerializedName("name") // name of repository
   private String name = ""; 

   @SerializedName("full_name") // full name of repository
   private String name = ""; 

    @SerializedName("parent") // this is the nested object which I want to parse
    private Parent parent = "";
}

class Parent{
   @SerializedName("full_name")
   private String full_name = ""; // full name of repository parent. This value I want to parse.
}

我的 POJO 类是否正确?为什么我不能得到

parent" ->"full_name"

【问题讨论】:

  • 如果你尝试访问其他属性是null吗?您可以显示您进行远程访问的代码部分吗?你确定回复不是null吗?

标签: java android json gson retrofit


【解决方案1】:

为什么要定义两个具有相同名称 (="name") 的字段? 顺便说一句,你的班级应该是这样的:

public class Repo{
     private long id;
     private String name;
     private String full_name;
     private Owner owner;
     private Parent parent;

     public class Parent{
          private String name;
          private String full_name;
          private Owner owner;
     }

     public class Owner{
          private long id;
          private String login;
     }
}

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2019-07-30
    • 2021-02-15
    • 2015-09-12
    • 2021-02-03
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多