我需要编写自定义改装反序列化程序,但现在不要从哪里开始。 问题是每个响应都有自己的带包络的结果包装器。 示例:post(“getUser”)将返回User(在“Result”中)
{
"GetUserResult": {
"ErrorCode": 0,
"ErrorDescription": null,
"Result": {
"id": ...
}
}
}
和post(“getPictures”)将返回图片列表(在“Result”中)
{
"GetPicturesResult": {
"ErrorCode": 0,
"ErrorDescription": null,
"Result": [ { ... } ]
}
}
和post(“getComment”)将返回评论
{
"id": ...
...
}
因此,想法是使用自定义反序列化器将“Get * Result”反序列化为“Result”对象,其中包含来自Result节点的errorCode,errorDesc和实际数据。
写“Get * Result”类不是一个选项,因为该类型的调用超过100个。
答案 0 :(得分:0)
解决了拦截器获取请求路径的最后一部分并添加"结果"最后,检查响应是否有" Get * Result" JSON元素并返回其值,否则返回原始响应。