1.解析JSON格式数据需要的JAR包:
commons-beanutils.jar
commons-collections-3.1.jar
commons-lang-2.0.jar
commons-logging.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
log4j-1.2.11.jar
morph-1.1.1.jar
附件提供下载。
2. 解析数据核心代码(附件2有淘宝返回的JSON格式数据示例)
/**
* 解析从淘宝返回的订单详情数据
* @param jsonString:淘宝返回的JSON格式数据
* @return:订单详情数据
*/
public Order analyticJson(String jsonString){
//JSON格式数据解析对象
JSONObject jb = JSONObject.fromObject(jsonString);
JSONObject ja = jb.getJSONObject("trade_fullinfo_get_response").getJSONObject("trade");
//需返回的订单对象
Order order = new Order();
order.setBuyer_nick(ja.getString("buyer_nick"));
order.setReceiver_address(ja.getString("receiver_address"));
order.setReceiver_city(ja.getString("receiver_city"));
order.setReceiver_name(ja.getString("receiver_name"));
order.setReceiver_state(ja.getString("receiver_state"));
//区域是否存在
if(ja.containsKey("receiver_district")){
order.setReceiver_district(ja.getString("receiver_district"));
}else{
order.setReceiver_district("");
}
//手机号是否存在
if(ja.containsKey("receiver_mobile")){
order.setReceiver_mobile(ja.getString("receiver_mobile"));
}else{
order.setReceiver_mobile("");
}
//电话是否存在
if(ja.containsKey("receiver_phone")){
order.setReceiver_phone(ja.getString("receiver_phone"));
}else{
order.setReceiver_phone("");
}
//订单明细列表
java.util.List<OrderDetail> goodsList = new java.util.LinkedList<OrderDetail>();
JSONArray orderDetailArr = ja.getJSONObject("orders").getJSONArray("order");
//循环添加订单明细
for(int j=0;j<orderDetailArr.size();j++){
OrderDetail od = new OrderDetail();
od.setNum(orderDetailArr.getJSONObject(j).getString("num"));
od.setOuter_iid(orderDetailArr.getJSONObject(j).getString("outer_iid"));
od.setPayment(orderDetailArr.getJSONObject(j).getString("payment"));
goodsList.add(od);
}
order.setGoodsList(goodsList);
return order;
}