1、javaBean与json对象间的转换:
方式1:
Psgflow psgflow = JSONObject.toJavaObject(jsonObject, Psgflow.class);
方式2:
Psgflow psgflow = JSONObject.parseObject(jsonStr, Psgflow.class);
2、List与jsonArrayStr转换:
List<Psgflow > psgflows = JSONObject.parseArray(jsonArrayStr, Psgflow.class);
原理
1、我们可以把JSONObject当成一个Map<String,Object>来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。
2、同样我们可以把JSONArray当做一个List<Object>,可以把JSONArray看成JSONObject对象的一个集合。
3、此外,由于JSONObject和JSONArray继承了JSON,所以说也可以直接使用两者对JSON格式字符串与JSON对象及javaBean之间做转换,不过为了避免混淆我们还是使用JSON。
示例:
public List<CarpoolRouteStation> getRouteDetail(String orderNo) {
String routeInfoDetail = regularRouteOrderMapper.selectByOrderNo(orderNo);
JSONObject jsonObject = JSON.parseObject(routeInfoDetail);
JSONArray jsonArray = jsonObject.getJSONArray("carpoolRouteStations");
List<CarpoolRouteStation> carpoolRouteStations = new ArrayList<>();
for(Object obj : jsonArray){
JSONObject jsonObj = (JSONObject) obj;
CarpoolRouteStation carpoolRouteStation = JSONObject.toJavaObject(jsonObj, CarpoolRouteStation.class);
carpoolRouteStations.add(carpoolRouteStation);
}
return carpoolRouteStations;
}
参考资料:
1、FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换