天气预报的接口也算是用过几个了,听说和风天气API可以免费使用3000次,果断是要尝试一下的。本来打算花半个小时弄完,结果由于和风天气API的各种不人性化的设定,花了足足半天才搞定。在此记录下来,帮大家少走弯路。
前面的步骤依旧很老套,注册,申请key,然后就请求数据,这里我用的是Volley框架中的get方法直接请求的,十分简单,可参考Android-Volley框架中的get和post方式
String url="http://10.0.2.2:8080/LostAndFoundWeb/servlet/NewsServlet";
StringRequest sr=new StringRequest(url, new Response.Listener<String>() { //响应成功监听接口
@Override
public void onResponse(String json) {
Log.d("===json===",json);
}, new Response.ErrorListener() { //响应错误监听接口
@Override
public void onErrorResponse(VolleyError volleyError) {
//提示网络异常
Toast.makeText(context, "网络连接异常", Toast.LENGTH_SHORT).show();
}
});
SingleVolleyRequestQueue.getInstance(context).addToRequestQueue(sr);
}
Log一出来,然后就进入懵逼状态。
这key也太特殊了吧,带空格也就算了,还带小数点,完全没法用GSON或者JSONObject解析好吧。然后机智的我是这么做的:
json=json.replaceAll(" ","");
json=json.replaceFirst("3.0","");
然后既可以一步步解析了。
不过鉴于这个JSON数据太过复杂,建议使用GsonFormat插件。一键解决所有难题。传送门:GsonFormat使用方法详解