今天调用别人接口遇到一个问题,原本约定的data格式为:JSON字符串,但本次返回了一个空字符串"",
大概是这样的
字符串类型的httpResult.data值为字result:''success",responseCode:200,data:""
request.getResponseClass()返回类型的属性有:
private String result; private String responseCode; private String errorMsg; private String errorDetail; private JSONObject data;
导致
JSON.parseObject(httpResult.getData(), request.getResponseClass());
这行代码JSON转换异常,因为目标类型的data属性是JSONObject类型的,传个""当然不行。
由于这是一个通用接口,很多方法都调用而且只有这一个接口返回了空串,又不方便给对方提意见更正。想了半天憋出一个办法,如下:
public void setData(String data) { try { this.data = JSON.parseObject(data); } catch (Exception e) { this.data = null; } }
已解决:)