12306模拟get方法 ——json解析数据

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解析数据,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。