改造POJO为空但JSON有效

时间:2015-01-18 23:09:17

标签: android json pojo retrofit

一直在摸我的头。 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对象始终为null。任何人都可以在这里指出POJO对象有什么问题? 感谢。

1 个答案:

答案 0 :(得分:0)

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

  1. 您正在另一个类中定义一个类;我从未见过像这样做过。您可能希望将两个不同的文件分开。

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

  3. public class ApiResponse {MRData MRData;}

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