【发布时间】:2022-08-16 23:28:08
【问题描述】:
我有以下 JSON
{
\"ads\": [
{
\"228029_228029\": {
\"ad_id\": \"228029\",
\"duration\": 10,
\"m3u8_text\": {
\"_1280p\": \"#EXTM3U\\n#EXT-X-VERSION:3\\n#EXT-X-ALLOW-CACHE:YES\\n#EXT-X-TARGETDURATION:7\\n#EXT-X-MEDIA-SEQUENCE:0\\n#EXTINF:7.120000,\\n_1280p_0000.ts\\n#EXTINF:2.880000,\\n_1280p_0001.ts\\n#EXT-X-ENDLIST\\n\",
\"_320p\": \"#EXTM3U\\n#EXT-X-VERSION:3\\n#EXT-X-ALLOW-CACHE:YES\\n#EXT-X-TARGETDURATION:7\\n#EXT-X-MEDIA-SEQUENCE:0\\n#EXTINF:7.120000,\\n_320p_0000.ts\\n#EXTINF:2.880000,\\n_320p_0001.ts\\n#EXT-X-ENDLIST\\n\"
}
}
},
{
\"228845_228845\": {
\"ad_id\": \"228845\",
\"duration\": 24,
\"m3u8_text\": {
\"_1280p\": \"#EXTM3U\\n#EXT-X-VERSION:3\\n#EXT-X-ALLOW-CACHE:YES\\n#EXT-X-TARGETDURATION:8\\n#EXT-X-MEDIA-SEQUENCE:0\\n#EXTINF:7.840000,\\n_1280p_0000.ts\\n#EXTINF:6.880000,\\n_1280p_0001.ts\\n#EXTINF:6.680000,\\n_1280p_0002.ts\\n#EXTINF:2.600000,\\n_1280p_0003.ts\\n#EXT-X-ENDLIST\\n\",
\"_320p\": \"#EXTM3U\\n#EXT-X-VERSION:3\\n#EXT-X-ALLOW-CACHE:YES\\n#EXT-X-TARGETDURATION:8\\n#EXT-X-MEDIA-SEQUENCE:0\\n#EXTINF:7.840000,\\n_320p_0000.ts\\n#EXTINF:6.880000,\\n_320p_0001.ts\\n#EXTINF:6.680000,\\n_320p_0002.ts\\n#EXTINF:2.600000,\\n_320p_0003.ts\\n#EXT-X-ENDLIST\\n\"
}
}
}
],
\"total_duration\": 80
}
我已经创建了相应的模型类 这是根模型
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdsResponse {
@JsonProperty(\"ads\")
List<Ad> ads;
@JsonProperty(\"total_duration\")
long totalDuration;
}
然后是广告模型
public class Ad {
Map<String,AdInfo> ad;}
然后是 AdInfo 模型
public class AdInfo {
@JsonProperty(\"m3u8_text\")
AdManifest adManifest;
int duration;
@JsonProperty(\"ad_id\")
String adId;}
然后是清单模型
public class AdManifest {
@JsonProperty(\"_1280p\")
String _1280p;
@JsonProperty(\"_320p\")
String _320p;}
当我尝试使用下面的代码解析它时
AdsResponse response = new ObjectMapper().readValue(
res,
AdsResponse.class);
我得到空的广告对象
AdsResponse{ads=[Ad{ad=null}, Ad{ad=null}, totalDuration=80}
这里有什么问题?
-
您的
Ad类似乎缺少正确的映射。它需要ad属性出现在 JSON 中,但您的 JSON 表明嵌套地图的名称不应该存在。您可能需要使用@JsonAnySetter等注释将每个“广告”的属性“路由”到Ad.ad映射中。 - 这可能会有所帮助:stackoverflow.com/questions/57312679/…
标签: java json spring spring-mvc jackson