改造 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 对象有什么问题吗?
谢谢
我在这里看到了几个潜在的问题:
你在另一个class里面定义了一个class;我从未见过这样做的。您可能想分成两个不同的文件。
您的 POJO 上的变量名称应与 JSON 响应中的变量名称完全匹配。例如:
public class ApiResponse {MRData MRData;}
如果您希望 POJO 的变量与 JSON 发回的变量不同,您应该使用 @SerlizedName
.
一直在为这个问题挠头。 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 对象有什么问题吗? 谢谢
我在这里看到了几个潜在的问题:
你在另一个class里面定义了一个class;我从未见过这样做的。您可能想分成两个不同的文件。
您的 POJO 上的变量名称应与 JSON 响应中的变量名称完全匹配。例如:
public class ApiResponse {MRData MRData;}
如果您希望 POJO 的变量与 JSON 发回的变量不同,您应该使用 @SerlizedName
.