1、引入hutool工具类
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.5</version>
</dependency>
2、JOSN转对象
- 数据格式
{
"code": 1,
"message": "success",
"data": [
{
"roadName": "成渝环线高速",
"direction": 2,
"congestLength": 8.56,
"congestTotalLength": 63.06,
"totalLength": 91.22,
"minutes": 75,
"driveIndex": 0.32,
"driveDegree": 2,
"congestPercent": 69
},
{
"roadName": "沪蓉高速",
"direction": 2,
"congestLength": 3.642,
"congestTotalLength": 30.7,
"totalLength": 68.68,
"minutes": 170,
"driveIndex": 0.16,
"driveDegree": 1,
"congestPercent": 45
}
],
"attrs": null
}
- 转对象
public VehicleInfoBO getRemoteVehicleBaseInfo(String vehiclePlateNum) {
String url = REMOTE_URL + "/wisdomCityHandler/getVehicleBaseInfo";
Map<String, Object> params = new HashMap<>(16);
params.put("vehiclePlateNum",vehiclePlateNum);
String remoteDataString = HttpUtil.get(url, params);
if (StrUtil.isEmpty(remoteDataString)) {
return null;
}
//转jsonObject去获取data数据
JSONObject jsonObject1 = JSONUtil.parseObj(remoteDataString);
String str = jsonObject1.getStr("data");
JSONObject dataObject = JSONUtil.parseObj(str);
return dataObject.toBean(VehicleInfoBO.class);
}
3、转list
- 数据格式
{
"code":1,
"message":"success",
"data":[
{
"lukInfoBOs":[
{
"zcuid":"18284",
"zcuidName":"双流界至机场"
},
{
"zcuid":"18283",
"zcuidName":"双流界至机场"
}
],
"wiseTollBOs": [
{
"tollName": "四川机场双流站",
"tollId": "S0006510010010"
}
],
"congestionLength": 0.54,
"roadLength": 26.346,
"rate": "2.04%"
},
{
"lukInfoBOs":[
{
"zcuid":"18284",
"zcuidName":"双流界至机场"
},
{
"zcuid":"18283",
"zcuidName":"双流界至机场"
}
],
"wiseTollBOs": [
{
"tollName": "四川机场双流站",
"tollId": "S0006510010010"
}
],
"congestionLength": 0.54,
"roadLength": 26.346,
"rate": "2.04%"
}
]
}
- 转list
public List<WiseLukInfoBO> getRemoteWiseLukInfo(String stationCode, Boolean isMatchToll) {
String url = REMOTE_URL + "/wisdomCityHandler/getWiseCongestionInfo";
Map<String, Object> params = new HashMap<>(16);
params.put("stationCode",stationCode);
params.put("isMatchToll",isMatchToll);
String remoteDataString = HttpUtil.get(url, params);
if (StrUtil.isEmpty(remoteDataString)) {
return null;
}
//结果集合
List<WiseLukInfoBO> dataList = new ArrayList<>();
//转jsonObject去获取data数据
JSONObject jsonObject = JSONUtil.parseObj(remoteDataString);
String str = jsonObject.getStr("data");
//获取到的data数据
JSONArray dataArray = JSONUtil.parseArray(str);
for (int i =0;i < dataArray.size();i++) {
//data中的某一条数据
String dataArrayStr = dataArray.getStr(i);
JSONObject jsonObjectData = JSONUtil.parseObj(dataArrayStr);
WiseLukInfoBO bo = jsonObjectData.toBean(WiseLukInfoBO.class);
//路段集合返回类
List<LukInfoBO> lukInfoBOList = new ArrayList<>();
//1、这条数据中的List<LukInfoBO>集合
String lukInfoString = jsonObjectData.getStr("lukInfoBOs");
JSONArray lukInfoStringArray = JSONUtil.parseArray(lukInfoString);
for (int j =0;j < lukInfoStringArray.size();j++) {
//集合中的某一条数据
String arrayString = lukInfoStringArray.getStr(j);
JSONObject listObject = JSONUtil.parseObj(arrayString);
LukInfoBO lukInfoBO = listObject.toBean(LukInfoBO.class);
lukInfoBOList.add(lukInfoBO);
}
//2、这条数据中的List<WiseTollBO>集合
List<WiseTollBO> wiseTollListData = new ArrayList<>();
String wiseTollListString = jsonObjectData.getStr("wiseTollBOs");
JSONArray wiseTollListArray = JSONUtil.parseArray(wiseTollListString);
for (int x =0;x < wiseTollListArray.size();x++) {
//集合中的某一条数据
String arrayString = wiseTollListArray.getStr(x);
JSONObject listObject = JSONUtil.parseObj(arrayString);
WiseTollBO wiseTollBO = listObject.toBean(WiseTollBO.class);
wiseTollListData.add(wiseTollBO);
}
bo.setLukInfoBOs(lukInfoBOList);
bo.setWiseTollBOs(wiseTollListData);
dataList.add(bo);
}
return dataList;
}