这是借口调用的返回结果,需要转换成自己需要的类型
public abstract class RopResponse implements Serializable { private static final long serialVersionUID = 5014379068811962022L; @ApiField("code") private String errorCode; @ApiField("msg") private String msg; @ApiField("sub_code") private String subCode; @ApiField("sub_msg") private String subMsg; private String body; private Map<String, String> params; ...... } public class JdytripProductsListResponse extends RopResponse { private static final long serialVersionUID = 2491528651932375471L; @ApiField("total") private String total; @ApiField("products") private Products products; ...... }这里使用的是阿里的fastjson类,有点麻烦
...... JdytripProductsListResponse response = ropClient.execute(request, session); if (response != null && response.isSuccess()) { String responseBody = response.getBody(); JSONObject jsonObject = JSONObject.parseObject(responseBody); Set<Map.Entry<String, Object>> entries = jsonObject.entrySet(); for (Map.Entry<String,Object> map : entries) { Object value = map.getValue(); JSONObject jsonObject1 = JSONObject.parseObject(value + ""); JSONObject productsJsonObj = jsonObject1.getJSONObject("products"); JSONArray productJsonObj = productsJsonObj.getJSONArray("product"); List<Object> objects = productJsonObj.subList(0, productJsonObj.size() - 1); for (Object obj : objects) { Map<String, Object> map2 = (Map<String, Object>) obj; Product product = new Product(); product.setDestCity(map2.get("arrive_place")+""); ...... productsList.add(product); } } return productsList; } ...... { "jdytrip_organization_list_response": { "organizations": { "organization": [ { "org_id": "2613", "org_pid": "0", "org_bh": "qd001", "org_name": "杭州趣搭网络有限公司", "org_fax": "", "org_service_tel": "18667001578", "org_sname": "趣搭", "org_addr": "杭州西湖区文三路90号", "org_legal": "陈敬良", "org_tel": "18667001578", "org_mob": "18667001578", "org_web": "", "org_province": "浙江", "org_city": "杭州", "org_county": "西湖区", "org_type": "供应商", "org_logo": "" }, { "org_id": "2612", "org_pid": "0", "org_bh": "JDY002612", "org_name": "测试供应商R", "org_fax": "", "org_service_tel": "", "org_sname": "西湖", "org_addr": "西湖", "org_legal": "晓雨", "org_tel": "", "org_mob": "18686765638", "org_web": "", "org_province": "浙江", "org_city": "杭州", "org_county": "江干区", "org_type": "供应商", "org_logo": "" } ] }, "total": "73" } }这里使用的是net.sf.json 包的类,更简单些
...... String body = response.getBody(); net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(body); Object jdytrip_organization_list_response = jsonObject.get("jdytrip_organization_list_response"); net.sf.json.JSONObject organizationsJson = net.sf.json.JSONObject.fromObject(jdytrip_organization_list_response); Object organizations = organizationsJson.get("organizations"); net.sf.json.JSONObject organizationJson = net.sf.json.JSONObject.fromObject(organizations); Object organization = organizationJson.get("organization"); List<Organizations> organizationsList = (List<Organizations>) JSON.parseArray(organization.toString(), response.getOrganizations().getClass()); ......