public class jsontest {
private String html;
public static String []query={"station_train_code","from_station_name","to_station_name"};
public jsontest(String response){
html=response;
}
public static void main(String []args) {
String date="2014-04-16";
String train_date="leftTicketDTO.train_date";
String from_station="leftTicketDTO.from_station";
//leftTicketDTO.train_date=2014-04-16&leftTicketDTO.
//from_station=HZH&leftTicketDTO.to_station=CSQ&purpose_codes=ADULT
// params.add(new NameValuePair("leftTicketDTO.train_date",data));
Map<String,String> params=new LinkedHashMap<String,String>();
//treemap,以及hashmap顺序不一定对的,与插入顺序无关
params.put(train_date,date);
params.put(from_station,"HZH");
params.put("leftTicketDTO.to_station", "CSQ");
params.put("purpose_codes", "ADULT");
getbook get=new getbook(bookInfo.get_book,params);
get.init();
String response=get.getreponse();
//json myjson=new json();
try {
JSONObject json=new JSONObject(response);
JSONArray data=json.getJSONArray("data");
//json比Google的gson好用一点
int num=data.length();
JSONObject train=null;
JSONObject temp=null;
String str=null;
for(int i=0;i<num;i++){
train=data.getJSONObject(i);
temp=train.getJSONObject("queryLeftNewDTO");
for(int j=0;j<3;j++){
str=temp.getString(query[j]);
System.out.println(query[j]+":"+str);
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println(response);
}
主要难点在于参数的构造,hashmap以及treemap的顺序与插入的顺序不一致,所以只能用list或者用linkedHashmap,其次在于json的解析,尝试过google的gson,不好用,不过有一大优势,gson可以把对象序列化为json,或者从json中构建对象,最后用json解析实现的。
12306模拟get方法 ——json解析数据,布布扣,bubuko.com
12306模拟get方法 ——json解析数据