json数据解析成java对象(国家气象局数据)

网友翻出来的国家气象局天气预报查询出来的数据是这样的。然后看的像JSON 然后感觉哪里不对 最后就把他当做JSON玩。。

找啊找 找到了一个工具 Gson 然后就 上代码吧 

1.weatherinfo 天气预报类

public class weatherinfo {
	private String city;//:"南京",
	private String city_en;//":"nanjing",
	private String date_y;//":"2014年3月4日",
	private String date;//":"",
	private String week;//":"星期二",
	private String fchh;//":"11",
	private String cityid;//":"101190101",
	private String temp1;//":"12℃~4℃",
	private String temp2;//":"12℃~2℃",
	private String temp3;//":"6℃~1℃",
	private String temp4;//:"9℃~3℃",
	private String temp5;//:"8℃~3℃",
	private String temp6;//:"12℃~3℃",
	private String tempF1;//:"53.6℉~39.2℉",
    private String tempF2;//:"53.6℉~35.6℉",
    private String tempF3;//:"42.8℉~33.8℉",
    private String tempF4;//:"48.2℉~37.4℉",
    private String tempF5;//:"46.4℉~37.4℉",
    private String tempF6;//:"53.6℉~37.4℉",
    private String weather1;//:"阴转多云",
    private String weather2;//:"多云转阴",
    private String weather3;//:"小雨转阴",
    private String weather4;//:"小雨",
    private String weather5;//:"小雨转阴",
    private String weather6;//:"多云",
    private String img1;//:"2",
    private String img2;//:"1",
    private String img3;//:"1",
    private String img4;//:"2",
    private String img5;//:"7",
    private String img6;//:"2",
    private String img7;//:"7",
    private String img8;//:"99",
    private String img9;//:"7",
    private String img10;//:"2",
    private String img11;//:"1",
    private String img12;//:"99",
    private String img_single;//:"2",
    private String img_title1;//:"阴",
    private String img_title2;//:"多云",
    private String img_title3;//:"多云",
    private String img_title4;//:"阴",
    private String img_title5;//:"小雨",
    private String img_title6;//:"阴",
    private String img_title7;//:"小雨",
    private String img_title8;//:"小雨",
    private String img_title9;//:"小雨",
    private String img_title10;//:"阴",
    private String img_title11;//:"多云",
    private String img_title12;//:"多云",
    private String img_title_single;//:"阴",
    private String wind1;//:"东风转东北风3-4级",
    private String wind2;//:"东北风转东风4-5级",
    private String wind3;//:"东风4-5级转3-4级",
    private String wind4;//:"东风4-5级",
    private String wind5;//:"东风转东北风3-4级",
    private String wind6;//:"东南风转南风3-4级",
    private String fx1;//:"东风",
    private String fx2;//:"东北风",
    private String fl1;//:"3-4级",
    private String fl2;//:"4-5级",
    private String fl3;//:"4-5级转3-4级",
    private String fl4;//:"4-5级",
    private String fl5;//:"3-4级",
    private String fl6;//:"3-4级",
    private String index;//:"较冷",
    private String index_d;//:"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。",
    private String index48;//:"冷",
    private String index48_d;//:"天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。",
    private String index_uv;//:"最弱",
    private String index48_uv;//:"最弱",
    private String index_xc;//:;//较不宜",
    private String index_tr;//:"适宜",
    private String index_co;//:"较舒适",
    private String st1;//:"13",
    private String st2;//:"0",
    private String st3;//:"11",
    private String st4;//:"0",
    private String st5;//:"3",
    private String st6;//:"-2",
    private String index_cl;//:"较不宜",
    private String index_ls;//:"不太适宜",
    private String index_ag;//:"易发"
    
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getCity_en() {
		return city_en;
	}
	public void setCity_en(String city_en) {
		this.city_en = city_en;
	}
	public String getDate_y() {
		return date_y;
	}
	public void setDate_y(String date_y) {
		this.date_y = date_y;
	}
	public String getDate() {
		return date;
	}
	public void setDate(String date) {
		this.date = date;
	}
	public String getWeek() {
		return week;
	}
	public void setWeek(String week) {
		this.week = week;
	}
	public String getFchh() {
		return fchh;
	}
	public void setFchh(String fchh) {
		this.fchh = fchh;
	}
	public String getCityid() {
		return cityid;
	}
	public void setCityid(String cityid) {
		this.cityid = cityid;
	}
	public String getTemp1() {
		return temp1;
	}
	public void setTemp1(String temp1) {
		this.temp1 = temp1;
	}
	public String getTemp2() {
		return temp2;
	}
	public void setTemp2(String temp2) {
		this.temp2 = temp2;
	}
	public String getTemp3() {
		return temp3;
	}
	public void setTemp3(String temp3) {
		this.temp3 = temp3;
	}
	public String getTemp4() {
		return temp4;
	}
	public void setTemp4(String temp4) {
		this.temp4 = temp4;
	}
	public String getTemp5() {
		return temp5;
	}
	public void setTemp5(String temp5) {
		this.temp5 = temp5;
	}
	public String getTemp6() {
		return temp6;
	}
	public void setTemp6(String temp6) {
		this.temp6 = temp6;
	}
	public String getTempF1() {
		return tempF1;
	}
	public void setTempF1(String tempF1) {
		this.tempF1 = tempF1;
	}
	public String getTempF2() {
		return tempF2;
	}
	public void setTempF2(String tempF2) {
		this.tempF2 = tempF2;
	}
	public String getTempF3() {
		return tempF3;
	}
	public void setTempF3(String tempF3) {
		this.tempF3 = tempF3;
	}
	public String getTempF4() {
		return tempF4;
	}
	public void setTempF4(String tempF4) {
		this.tempF4 = tempF4;
	}
	public String getTempF5() {
		return tempF5;
	}
	public void setTempF5(String tempF5) {
		this.tempF5 = tempF5;
	}
	public String getTempF6() {
		return tempF6;
	}
	public void setTempF6(String tempF6) {
		this.tempF6 = tempF6;
	}
	public String getWeather1() {
		return weather1;
	}
	public void setWeather1(String weather1) {
		this.weather1 = weather1;
	}
	public String getWeather2() {
		return weather2;
	}
	public void setWeather2(String weather2) {
		this.weather2 = weather2;
	}
	public String getWeather3() {
		return weather3;
	}
	public void setWeather3(String weather3) {
		this.weather3 = weather3;
	}
	public String getWeather4() {
		return weather4;
	}
	public void setWeather4(String weather4) {
		this.weather4 = weather4;
	}
	public String getWeather5() {
		return weather5;
	}
	public void setWeather5(String weather5) {
		this.weather5 = weather5;
	}
	public String getWeather6() {
		return weather6;
	}
	public void setWeather6(String weather6) {
		this.weather6 = weather6;
	}
	public String getImg1() {
		return img1;
	}
	public void setImg1(String img1) {
		this.img1 = img1;
	}
	public String getImg2() {
		return img2;
	}
	public void setImg2(String img2) {
		this.img2 = img2;
	}
	public String getImg3() {
		return img3;
	}
	public void setImg3(String img3) {
		this.img3 = img3;
	}
	public String getImg4() {
		return img4;
	}
	public void setImg4(String img4) {
		this.img4 = img4;
	}
	public String getImg5() {
		return img5;
	}
	public void setImg5(String img5) {
		this.img5 = img5;
	}
	public String getImg6() {
		return img6;
	}
	public void setImg6(String img6) {
		this.img6 = img6;
	}
	public String getImg7() {
		return img7;
	}
	public void setImg7(String img7) {
		this.img7 = img7;
	}
	public String getImg8() {
		return img8;
	}
	public void setImg8(String img8) {
		this.img8 = img8;
	}
	public String getImg9() {
		return img9;
	}
	public void setImg9(String img9) {
		this.img9 = img9;
	}
	public String getImg10() {
		return img10;
	}
	public void setImg10(String img10) {
		this.img10 = img10;
	}
	public String getImg11() {
		return img11;
	}
	public void setImg11(String img11) {
		this.img11 = img11;
	}
	public String getImg12() {
		return img12;
	}
	public void setImg12(String img12) {
		this.img12 = img12;
	}
	public String getImg_single() {
		return img_single;
	}
	public void setImg_single(String img_single) {
		this.img_single = img_single;
	}
	public String getImg_title1() {
		return img_title1;
	}
	public void setImg_title1(String img_title1) {
		this.img_title1 = img_title1;
	}
	public String getImg_title2() {
		return img_title2;
	}
	public void setImg_title2(String img_title2) {
		this.img_title2 = img_title2;
	}
	public String getImg_title3() {
		return img_title3;
	}
	public void setImg_title3(String img_title3) {
		this.img_title3 = img_title3;
	}
	public String getImg_title4() {
		return img_title4;
	}
	public void setImg_title4(String img_title4) {
		this.img_title4 = img_title4;
	}
	public String getImg_title5() {
		return img_title5;
	}
	public void setImg_title5(String img_title5) {
		this.img_title5 = img_title5;
	}
	public String getImg_title6() {
		return img_title6;
	}
	public void setImg_title6(String img_title6) {
		this.img_title6 = img_title6;
	}
	public String getImg_title7() {
		return img_title7;
	}
	public void setImg_title7(String img_title7) {
		this.img_title7 = img_title7;
	}
	public String getImg_title8() {
		return img_title8;
	}
	public void setImg_title8(String img_title8) {
		this.img_title8 = img_title8;
	}
	public String getImg_title9() {
		return img_title9;
	}
	public void setImg_title9(String img_title9) {
		this.img_title9 = img_title9;
	}
	public String getImg_title10() {
		return img_title10;
	}
	public void setImg_title10(String img_title10) {
		this.img_title10 = img_title10;
	}
	public String getImg_title11() {
		return img_title11;
	}
	public void setImg_title11(String img_title11) {
		this.img_title11 = img_title11;
	}
	public String getImg_title12() {
		return img_title12;
	}
	public void setImg_title12(String img_title12) {
		this.img_title12 = img_title12;
	}
	public String getImg_title_single() {
		return img_title_single;
	}
	public void setImg_title_single(String img_title_single) {
		this.img_title_single = img_title_single;
	}
	public String getWind1() {
		return wind1;
	}
	public void setWind1(String wind1) {
		this.wind1 = wind1;
	}
	public String getWind2() {
		return wind2;
	}
	public void setWind2(String wind2) {
		this.wind2 = wind2;
	}
	public String getWind3() {
		return wind3;
	}
	public void setWind3(String wind3) {
		this.wind3 = wind3;
	}
	public String getWind4() {
		return wind4;
	}
	public void setWind4(String wind4) {
		this.wind4 = wind4;
	}
	public String getWind5() {
		return wind5;
	}
	public void setWind5(String wind5) {
		this.wind5 = wind5;
	}
	public String getWind6() {
		return wind6;
	}
	public void setWind6(String wind6) {
		this.wind6 = wind6;
	}
	public String getFx1() {
		return fx1;
	}
	public void setFx1(String fx1) {
		this.fx1 = fx1;
	}
	public String getFx2() {
		return fx2;
	}
	public void setFx2(String fx2) {
		this.fx2 = fx2;
	}
	public String getFl1() {
		return fl1;
	}
	public void setFl1(String fl1) {
		this.fl1 = fl1;
	}
	public String getFl2() {
		return fl2;
	}
	public void setFl2(String fl2) {
		this.fl2 = fl2;
	}
	public String getFl3() {
		return fl3;
	}
	public void setFl3(String fl3) {
		this.fl3 = fl3;
	}
	public String getFl4() {
		return fl4;
	}
	public void setFl4(String fl4) {
		this.fl4 = fl4;
	}
	public String getFl5() {
		return fl5;
	}
	public void setFl5(String fl5) {
		this.fl5 = fl5;
	}
	public String getFl6() {
		return fl6;
	}
	public void setFl6(String fl6) {
		this.fl6 = fl6;
	}
	public String getIndex() {
		return index;
	}
	public void setIndex(String index) {
		this.index = index;
	}
	public String getIndex_d() {
		return index_d;
	}
	public void setIndex_d(String index_d) {
		this.index_d = index_d;
	}
	public String getIndex48() {
		return index48;
	}
	public void setIndex48(String index48) {
		this.index48 = index48;
	}
	public String getIndex48_d() {
		return index48_d;
	}
	public void setIndex48_d(String index48_d) {
		this.index48_d = index48_d;
	}
	public String getIndex_uv() {
		return index_uv;
	}
	public void setIndex_uv(String index_uv) {
		this.index_uv = index_uv;
	}
	public String getIndex48_uv() {
		return index48_uv;
	}
	public void setIndex48_uv(String index48_uv) {
		this.index48_uv = index48_uv;
	}
	public String getIndex_xc() {
		return index_xc;
	}
	public void setIndex_xc(String index_xc) {
		this.index_xc = index_xc;
	}
	public String getIndex_tr() {
		return index_tr;
	}
	public void setIndex_tr(String index_tr) {
		this.index_tr = index_tr;
	}
	public String getIndex_co() {
		return index_co;
	}
	public void setIndex_co(String index_co) {
		this.index_co = index_co;
	}
	public String getSt1() {
		return st1;
	}
	public void setSt1(String st1) {
		this.st1 = st1;
	}
	public String getSt2() {
		return st2;
	}
	public void setSt2(String st2) {
		this.st2 = st2;
	}
	public String getSt3() {
		return st3;
	}
	public void setSt3(String st3) {
		this.st3 = st3;
	}
	public String getSt4() {
		return st4;
	}
	public void setSt4(String st4) {
		this.st4 = st4;
	}
	public String getSt5() {
		return st5;
	}
	public void setSt5(String st5) {
		this.st5 = st5;
	}
	public String getSt6() {
		return st6;
	}
	public void setSt6(String st6) {
		this.st6 = st6;
	}
	public String getIndex_cl() {
		return index_cl;
	}
	public void setIndex_cl(String index_cl) {
		this.index_cl = index_cl;
	}
	public String getIndex_ls() {
		return index_ls;
	}
	public void setIndex_ls(String index_ls) {
		this.index_ls = index_ls;
	}
	public String getIndex_ag() {
		return index_ag;
	}
	public void setIndex_ag(String index_ag) {
		this.index_ag = index_ag;
	}
}
2.weatherinfoList 预报集合类

public class weatherinfoList {
	weatherinfo weatherinfo;

	public weatherinfo getWeatherinfo() {
		return weatherinfo;
	}

	public void setWeatherinfo(weatherinfo weatherinfo) {
		this.weatherinfo = weatherinfo;
	}
}

3.getDate数据获取

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import org.json.JSONException;

public class getDate {
	public static final String GET_URL = " http://m.weather.com.cn/data/101190101.html"; 

    public static final String POST_URL = " http://localhost:8080/demo/  "; 

    public static void main(String[] args) { 

        // TODO Auto-generated method stub 

        try { 

                try {
					readContentFromGet();
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 

                //readContentFromPost(); 

        } catch (IOException e) { 

                // TODO Auto-generated catch block 

                e.printStackTrace(); 

        } 

}
    public static String readContentFromGet() throws IOException, JSONException { 

           // 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码 

           String getURL = GET_URL; 

           URL getUrl = new URL(getURL); 

           // 根据拼凑的URL,打开连接,URL.openConnection()函数会根据 URL的类型,返回不同的URLConnection子类的对象,在这里我们的URL是一个http,因此它实际上返回的是HttpURLConnection 

           HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection(); 
           //connection.setRequestProperty("Charset", "utf-8");
           // 建立与服务器的连接,并未发送数据 

           connection.connect(); 

           // 发送数据到服务器并使用Reader读取返回的数据 

           BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8")); 

           System.out.println(" ============================= "); 

           System.out.println(" Contents of get request "); 

           System.out.println(" ============================= "); 

           /*
            * {
            * 
            * "weatherinfo":
            {"city":"南京",
            "city_en":"nanjing",
            "date_y":"2014年3月4日",
            "date":"",
            "week":"星期二",
            "fchh":"11",
            "cityid":"101190101",
            "temp1":"12℃~4℃",
            "temp2":"12℃~2℃",
            "temp3":"6℃~1℃",
            "temp4":"9℃~3℃",
            "temp5":"8℃~3℃",
            "temp6":"12℃~3℃",
            "tempF1":"53.6℉~39.2℉",
            "tempF2":"53.6℉~35.6℉",
            "tempF3":"42.8℉~33.8℉",
            "tempF4":"48.2℉~37.4℉",
            "tempF5":"46.4℉~37.4℉",
            "tempF6":"53.6℉~37.4℉",
            "weather1":"阴转多云",
            "weather2":"多云转阴",
            "weather3":"小雨转阴",
            "weather4":"小雨",
            "weather5":"小雨转阴",
            "weather6":"多云",
            "img1":"2",
            "img2":"1",
            "img3":"1",
            "img4":"2",
            "img5":"7",
            "img6":"2",
            "img7":"7",
            "img8":"99",
            "img9":"7",
            "img10":"2",
            "img11":"1",
            "img12":"99",
            "img_single":"2",
            "img_title1":"阴",
            "img_title2":"多云",
            "img_title3":"多云",
            "img_title4":"阴",
            "img_title5":"小雨",
            "img_title6":"阴",
            "img_title7":"小雨",
            "img_title8":"小雨",
            "img_title9":"小雨",
            "img_title10":"阴",
            "img_title11":"多云",
            "img_title12":"多云",
            "img_title_single":"阴",
            "wind1":"东风转东北风3-4级",
            "wind2":"东北风转东风4-5级",
            "wind3":"东风4-5级转3-4级",
            "wind4":"东风4-5级",
            "wind5":"东风转东北风3-4级",
            "wind6":"东南风转南风3-4级",
            "fx1":"东风",
            "fx2":"东北风",
            "fl1":"3-4级",
            "fl2":"4-5级",
            "fl3":"4-5级转3-4级",
            "fl4":"4-5级",
            "fl5":"3-4级",
            "fl6":"3-4级",
            "index":"较冷",
            "index_d":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。",
            "index48":"冷",
            "index48_d":"天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。",
            "index_uv":"最弱",
            "index48_uv":"最弱",
            "index_xc":"较不宜",
            "index_tr":"适宜",
            "index_co":"较舒适",
            "st1":"13",
            "st2":"0",
            "st3":"11",
            "st4":"0",
            "st5":"3",
            "st6":"-2",
            "index_cl":"较不宜",
            "index_ls":"不太适宜",
            "index_ag":"易发"
            }
            * }
            * */
           String str=reader.readLine();
           reader.close();
           // 断开连接
           connection.disconnect(); 
           
           System.out.println(" ============================= "); 

           System.out.println(" Contents of get request ends "); 

           System.out.println(" ============================= ");
		return str; 

    } 



    public static void readContentFromPost() throws IOException { 

           // Post请求的url,与get不同的是不需要带参数 

           URL postUrl = new URL(POST_URL); 

           // 打开连接 

           HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection(); 

           //打开读写属性,默认均为false 

           connection.setDoOutput(true);
           
           connection.setDoInput(true); 

           // 设置请求方式,默认为GET 

           connection.setRequestMethod(" POST "); 

           // Post 请求不能使用缓存 

           connection.setUseCaches(false); 

           // URLConnection.setFollowRedirects是static 函数,作用于所有的URLConnection对象。 

           // connection.setFollowRedirects(true); 

           //URLConnection.setInstanceFollowRedirects 是成员函数,仅作用于当前函数 

           connection.setInstanceFollowRedirects(true); 

           // 配置连接的Content-type,配置为application/x- www-form-urlencoded的意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode进行编码 

           connection.setRequestProperty(" Content-Type ", 

                           " application/x-www-form-urlencoded "); 

           // 连接,从postUrl.openConnection()至此的配置必须要在 connect之前完成, 

           // 要注意的是connection.getOutputStream()会隐含的进行调用 connect(),所以这里可以省略 

           //connection.connect(); 

           DataOutputStream out = new DataOutputStream(connection 

                           .getOutputStream()); 

           //正文内容其实跟get的URL中'?'后的参数字符串一致 

           String content = " firstname= "+URLEncoder.encode(" 一个大肥人 ", " utf-8 "); 

           // DataOutputStream.writeBytes将字符串中的16位的 unicode字符以8位的字符形式写道流里面 

           out.writeBytes(content); 

           out.flush(); 

           out.close(); // flush and close 

           BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

           String line; 

           System.out.println(" ============================= "); 

           System.out.println(" Contents of post request "); 

           System.out.println(" ============================= "); 

           while ((line = reader.readLine()) != null) { 

                   System.out.println(line); 

           } 

           System.out.println(" ============================= "); 

           System.out.println(" Contents of post request ends "); 

           System.out.println(" ============================= "); 

           reader.close(); 

           //connection.disconnect(); 

    } 
 
}

4.方法测试


import java.io.IOException;

import org.json.JSONException;

import com.google.gson.Gson;


public class weatherinfoToJavaBean {
	public static void main(String[] args) throws IOException, JSONException {
        String str=getDate.readContentFromGet();
        Gson gson = new Gson();
        weatherinfoList winfo=gson.fromJson(str, weatherinfoList.class);
        System.out.println(winfo.getWeatherinfo().getCity());
	}
}

5.输出截图



在这里感谢由忘记是谁提供的 http请求方法 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值