改造 POJO 为 null 但 JSON 有效

Retrofit POJO is null but JSON is valid

一直在为这个问题挠头。 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 对象有什么问题吗? 谢谢

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

  1. 你在另一个class里面定义了一个class;我从未见过这样做的。您可能想分成两个不同的文件。

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

public class ApiResponse {MRData MRData;}

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