我已经开始将 Moshi 与 Retrofit 2 一起使用,并且在解析从服务调用返回的父对象中的对象数组时遇到了问题。返回的 JSON 如下所示:
{
"acf": {
"email": "dirk@dirkgently.com",
"address": "24 Cortland Avenue",
"country": "US",
"description": "Oh my goodness",
"created_at": "1416672067",
"updated_at": "1416672067",
"facebook": "",
"contact": "Dirk Gently",
"photos": [
{
"file": 3525
},
{
"file": 3526
},
{
"file": 6110
},
{
"file": 3527
},
{
"file": 3528
},
{
"file": 6700
},
{
"file": 7404
},
{
"file": 7419
}
],
"latitude": "40.801249",
"longitude": "-99.746280"
}
}
我在“照片”字段中遇到以下异常:
com.squareup.moshi.JsonDataException:应为 BEGIN_ARRAY,但在路径 $[0].acf.photos 处为 STRING
我已经定义了这样的模型:
public class Acf {
private String email;
private String address;
List<Photo>photos;
}
public class Photo {
public int file;
}
我尝试以各种其他方式在模型中声明该属性,并通读文档以找出我做错了什么。我被困在这一点上,真的可以用第二双眼睛将我指向正确的方向。我有一种感觉,我错过了一些非常简单和明显的东西。提前感谢任何可以提供帮助的人。如果我遗漏了任何相关信息,请告诉我,我会更新帖子。
更新:我发现此异常仅在我获取多个 ACF 时发生。如果我请求单个对象,一切都会正确解析。