我遇到了一些问题。 我正在尝试从这样的服务器获取数据。
{
"Message": "",
"StatusCode": 0,
"Payload": [
[
{
},
{
}
],
[
{
},
{
}
]
]
}
我的BaseResponse是...
@SerializedName("Message")
@Expose
private String Message;
@SerializedName("StatusCode")
@Expose
private int StatusCode;
@SerializedName("Payload")
@Expose
private T Payload;
public String getMessage() {
return Message;
}
public int getStatusCode() {
return StatusCode;
}
public T getPayload() {
return Payload;
}
我的改装界面是...
@Multipart
@POST(APIServer.Tstgen.POST)
Observable<BaseResponse<List<List<MoneyResponse>>>> getMoneyMainResult(
@PartMap Map<String, RequestBody> requestBodyMap
);
我认为一切都还可以,但是... Gson转换时总是会出错...
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第2列路径$ BEGIN_ARRAY是>
我的代码有什么问题?
答案 0 :(得分:1)
更改为响应类并将您的有效负载类添加到列表中。
@SerializedName("Payload")
private List<Payload> payloadList;
使用getter setter方法
答案 1 :(得分:0)
将有效载荷设置为如下列表
@SerializedName("Message")
@Expose
private String Message;
@SerializedName("StatusCode")
@Expose
private int StatusCode;
@SerializedName("Payload")
@Expose
private List<Payload> Payload;
public String getMessage() {
return Message;
}
public int getStatusCode() {
return StatusCode;
}
public List<Payload> getPayload() {
return Payload;
}
public setPayload(List<Payload> payload) {
this.payload=payload;
}
答案 2 :(得分:0)
您应在基本存储库中更改类型def comb(list: List[(Char, Int)]): List[(Char, Int)] =
list.flatMap{case (c,i) => (c,i) :: (if (i>1) (c,i-1)::Nil else Nil)}
字段,如下所示:
Payload
要了解有关改造文档的更多信息,此 Link 是有用的。
答案 3 :(得分:0)
@SerializedName("Message")
@Expose
private String Message;
@SerializedName("StatusCode")
@Expose
private int StatusCode;
@SerializedName("Payload")
@Expose
private Object Payload;
public String getMessage() {
return Message;
}
public int getStatusCode() {
return StatusCode;
}
public T getPayload() {
return Payload;
}
尝试使用对象而不是通用对象。 由于Object是所有类型的超级类型,因此您可以键入强制类型转换。
答案 4 :(得分:0)
除了上面给出的响应之外。.还重新检查了您的Web服务URL ...此错误也是由于URL错误