【问题标题】:Retrofit POJO is null but JSON is valid改造 POJO 为 null 但 JSON 有效
【发布时间】:2015-03-16 22:35:35
【问题描述】:

一直在摸索这个问题。 JSON 响应是有效的:

{
    "MRData": {
        "xmlns": "http://ergast.com/mrd/1.4",
        "series": "f1",
        "url": "http://ergast.com/api/f1/current/2.json",
        "limit": "30",
        "offset": "0",
        "total": "1",
        "RaceTable": {
            "season": "2014",
            "round": "2",
            "Races": [
                {
                    "season": "2014",
                    "round": "2",
                    "url": "https://en.wikipedia.org/wiki/2014_Malaysian_Grand_Prix",
                    "raceName": "Malaysian Grand Prix",
                    "Circuit": {
                        "circuitId": "sepang",
                        "url": "http://en.wikipedia.org/wiki/Sepang_International_Circuit",
                        "circuitName": "Sepang International Circuit",
                        "Location": {
                            "lat": "2.76083",
                            "long": "101.738",
                            "locality": "Kuala Lumpur",
                            "country": "Malaysia"
                        }
                    },
                    "date": "2014-03-30",
                    "time": "08:00:00Z"
                }
            ]
        }
    }
}

响应的 POJO:

public class ApiResponse {
    MRData mrdata;

    public class MRData {
        String xmlns;
        String series;
        String url;
        String limit;
        String offset;
        String total;
        RaceTable raceTable;
    }
}

apiResponse 对象始终为空。任何人都可以在这里指出 POJO 对象有什么问题? 谢谢。

【问题讨论】:

标签: android json pojo retrofit


【解决方案1】:

我在这里看到了几个潜在的问题:

  1. 您在另一个类中定义一个类;我从来没有见过这样做。您可能想分成两个不同的文件。

  2. 您的 POJO 上的变量名称应与 JSON 响应中的变量名称完全匹配。例如:

public class ApiResponse {MRData MRData;}

如果您希望 POJO 的变量不同于 JSON 发回的变量,您应该使用 @SerlizedName。

【讨论】:

  • AFAIK 我们可以在另一个类中设置类,这也可以。
  • @Emmanuel - 您提出的第一点无效。我已经使用改造很长一段时间了,这种模式真的很常见。外壳是我的问题。!谢谢
  • 与其说是“也许这会导致问题”,不如说是在说明问题。我从来没有见过这样做的。很高兴您的问题得到解决。
猜你喜欢
  • 2015-01-11
  • 2015-09-10
  • 2019-02-17
  • 2016-06-20
  • 2015-01-14
  • 2013-11-18
  • 2020-11-16
  • 2017-03-15
  • 2018-03-07
相关资源
最近更新 更多