使用 gson 检索动态 JSON 并改造 returns null?
Retrieve dynamic JSON using gson and retrofit returns null?
我有一个带有动态嵌套对象的动态 json,我创建了这些 pojo 但 model
始终为 NULL 我不知道我做错了什么。
这是我的JSon
{
"status": 200,
"message": "Accepted, Ok",
"model": {
"مشخصات کلي": {
"ابعاد": "125X98X76 ميلي متر",
"وزن": "480 گرم",
"ضد آب": false
},
"حسگر و تصوير": {
"محدوده دقت حسگر": "20.0 مگاپيکسل و بيشتر",
"نوع حسگر": "CMOS",
"قطع حسگر": "Crop Frame",
"ابعاد حسگر": "APS-C (23.5 x 15.6 mm)",
"دقت حسگر": "25 مگاپيکسل",
"دقت موثر حسگر": "24.2 مگاپيکسل",
"حداکثر رزولوشن عکس": "6000X4000"
},
"لنز": {
"محدوده زوم": "6 تا 10 برابر بزرگنمايي",
"فاصله کانوني": "18-140 ميلي متر",
"محدوده ديافراگم": "F/3.5-5.6",
"بزرگ نمايي اپتيکال": "7.7 برابر",
"لرزشگير تصوير": true
},
"فيلم": {
"رزولوشن فيلم": "Full HD",
"حداکثر سرعت فيلم": "60 فريم بر ثانيه",
"فيلمبرداري سه بعدي": false
}
}
}
这里是对应的POJO:
public class ProductTechnicalResponse {
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("model")
@Expose
private Model model;
}
class Model {
Map<String, Map<String,Object>> pairs;
}
将您的 POJO 更改为:
public class ProductTechnicalResponse {
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("model")
@Expose
private Map<String, Map<String, Object>> model;
}
模型是一张地图,而不是带有地图的结构。
我有一个带有动态嵌套对象的动态 json,我创建了这些 pojo 但 model
始终为 NULL 我不知道我做错了什么。
这是我的JSon
{
"status": 200,
"message": "Accepted, Ok",
"model": {
"مشخصات کلي": {
"ابعاد": "125X98X76 ميلي متر",
"وزن": "480 گرم",
"ضد آب": false
},
"حسگر و تصوير": {
"محدوده دقت حسگر": "20.0 مگاپيکسل و بيشتر",
"نوع حسگر": "CMOS",
"قطع حسگر": "Crop Frame",
"ابعاد حسگر": "APS-C (23.5 x 15.6 mm)",
"دقت حسگر": "25 مگاپيکسل",
"دقت موثر حسگر": "24.2 مگاپيکسل",
"حداکثر رزولوشن عکس": "6000X4000"
},
"لنز": {
"محدوده زوم": "6 تا 10 برابر بزرگنمايي",
"فاصله کانوني": "18-140 ميلي متر",
"محدوده ديافراگم": "F/3.5-5.6",
"بزرگ نمايي اپتيکال": "7.7 برابر",
"لرزشگير تصوير": true
},
"فيلم": {
"رزولوشن فيلم": "Full HD",
"حداکثر سرعت فيلم": "60 فريم بر ثانيه",
"فيلمبرداري سه بعدي": false
}
}
}
这里是对应的POJO:
public class ProductTechnicalResponse {
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("model")
@Expose
private Model model;
}
class Model {
Map<String, Map<String,Object>> pairs;
}
将您的 POJO 更改为:
public class ProductTechnicalResponse {
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("model")
@Expose
private Map<String, Map<String, Object>> model;
}
模型是一张地图,而不是带有地图的结构。