背景:我们现在的这个项目需要对接物流跟踪信息,通过调用快递100物流实时查询接口获取物流信息。 数据格式如下:
{
"message":"ok",
"state":"0",
"status":"200",
"condition":"F00",
"ischeck":"0",
"com":"yuantong",
"nu":"V030344422",
"data":[
{
"context":"上海分拨中心/装件入车扫描 ",
"time":"2012-08-28 16:33:19",
"ftime":"2012-08-28 16:33:19",
},
{
"context":"上海分拨中心/下车扫描 ",
"time":"2012-08-27 23:22:42",
"ftime":"2012-08-27 23:22:42",
}]
}
我是通过下面这个方法将返回是字符串数据转换为我需要的对象: List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz);
但是,我在用这个JSONArray对象的parseArray方法的时候,没有将返回来是字符串转换为json字符串,所以报了这个错。快递100接口默认是返回json的字符串。
后面我加了JSON.toJSONString才解决这个报错。
List<OrderTraceInfoVo> list = JSONArray.parseArray(JSON.toJSONString(maps.get("data")),OrderTraceInfoVo.class);