解决retrofit+okhttp+rx框架返回数据解析异常

这是返回的数据类型:
{
  "error": false, 
  "results": [
    {
      "_id": "58c259ce421aa90f03345158", 
      "createdAt": "2017-03-10T15:46:22.219Z", 
      "desc": "\u7f16\u7801\u4e2d\u964c\u751f\u5355\u8bcd\u4e0d\u8ba4\u8bc6\uff1f\u662f\u65f6\u5019\u6253\u9020\u4e00\u6b3eAndroidStudio\u5355\u8bcd\u5907\u5fd8\u63d2\u4ef6\u4e86", 
      "publishedAt": "2017-03-15T11:47:17.825Z", 
      "source": "web", 
      "type": "Android", 
      "url": "http://www.jianshu.com/p/760c98f682ea", 
      "used": true, 
      "who": "bolex"
    }
	   ]
}
然后这是封装的实体类:
public class ResponseResult<T> {

    private boolean error;
    private T result;

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public T getResult() {
        return result;
    }

    public void setResult(T result) {
        this.result = result;
    }

一开始无论怎样,rx在onNext中返回总是null后来多番对比发现,原来自己封装的实体中的返回字段key值一定要与后台接口返回的相同才行,也就是一定要是results差一个字母都不行。之前的时候用gson时记得只要 @ParamNames ( "key值" )里的key值与后台返回相同就行,但是不知道怎么回事在这个里面就 一定要一模一样 才行。记录一下,以免其他伙伴入坑。

你可能感兴趣的:(经验)