package cn.com.basic.face.discern.common; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.xutils.http.app.ResponseParser; import org.xutils.http.request.UriRequest; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.discern.common.ResultBean; /** * Created by wyouflf on 15/11/5. */ public class JsonResponseParser implements ResponseParser {// 如果实现 InputStreamResponseParser, 可实现自定义流数据转换. @Override public void checkResponse(UriRequest request) throws Throwable { // custom check ? // get headers ? } /** * 转换result为resultType类型的对象 * * @param resultType 返回值类型(可能带有泛型信息) * @param resultClass 返回值类型 * @param result 字符串数据 * @return * @throws Throwable */ @Override public Object parse(Type resultType, Class resultClass, String result) throws Throwable { ResultBean resultBean = JSON.parseObject(result, ResultBean.class); Object data = resultBean.getData(); if (data != null) { if (data instanceof JSONObject) { JSONObject jsonObj = (JSONObject) data; //Object itemObj = JSON.parseObject(jsonObj.toJSONString(), itemClass); //resultBean.setData(itemObj); } else if (data instanceof JSONArray) { JSONArray jsonArray = (JSONArray) data; //List itemList = JSON.parseArray(jsonArray.toJSONString(), itemClass); //resultBean.setData(itemList); } } return resultBean; // TODO: json to java bean /*if (resultClass == List.class) { // 这里只是个示例, 不做json转换. List list = new ArrayList(); BaiduResponse baiduResponse = new BaiduResponse(); baiduResponse.setTest(result); list.add(baiduResponse); return list; // fastJson 解析: // return JSON.parseArray(result, (Class) ParameterizedTypeUtil.getParameterizedType(resultType, List.class, 0)); } else { // 这里只是个示例, 不做json转换. BaiduResponse baiduResponse = new BaiduResponse(); baiduResponse.setTest(result); return baiduResponse; // fastjson 解析: // return JSON.parseObject(result, resultClass); }*/ } }