话不多说,直接上代码:

 

json数据:http://www.haoservice.com/docs/6

布局:

 

<?xml version="1.0" encoding="utf-8"?>    
 
主文件:主文件:
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import static android.content.ContentValues.TAG; public class MainActivity extends Activity { //控件初始化 private Button button; private final String address = "http://apis.haoservice.com/weather?cityname=成都&key=你的Key"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //设置按钮的单击事件 button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //网络请求只能在子线程中进行 new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(address); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); InputStream in = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder builder = new StringBuilder(); String line; //判断是否存在数据 while ((line = reader.readLine()) != null) { builder.append(line); //将数据转化为字符串类型 String data = builder.toString(); //创建一个方法,用来解析得到的json数据 parseison(data); //关闭相关资源 reader.close(); in.close(); conn.disconnect(); } } catch (IOException e) { e.printStackTrace(); } } }).start(); } private void parseison(String data) { try { //判断数据获取是否成功 JSONObject jsonobject = new JSONObject(data); int error_code = jsonobject.getInt("error_code"); if (error_code == 0) { JSONObject jsonobject_1 = jsonobject.getJSONObject("result"); //当前实况天气 JSONObject json_2 = jsonobject_1.getJSONObject("sk"); String temp = json_2.getString("temp"); String wind_direction = json_2.getString("wind_direction"); String wind_strength = json_2.getString("wind_strength"); String humidity = json_2.getString("humidity"); String time = json_2.getString("time"); Log.d(TAG, "当前温度:"+temp+"\n"+"当前风向:"+wind_direction+"\n"+"当前风力:"+wind_strength+"\n"+"当前湿度:"+humidity+"\n"+"更新时间:"+time); //当天的天气状况JSON数据 JSONObject today = jsonobject_1.getJSONObject("today"); String output = today.getString("city")+"\n"+ today.getString("date_y")+"\n"+ today.getString("week")+"\n"+ today.getString("temperature")+"\n"+ today.getString("weather")+"\n"+ today.getString("fa")+"\n"+ today.getString("fb")+"\n"+ today.getString("wind")+"\n"+ today.getString("dressing_index")+"\n"+ today.getString("dressing_advice")+"\n"+ today.getString("uv_index")+"\n"+ today.getString("comfort_index")+"\n"+ today.getString("wash_index")+"\n"+ today.getString("travel_index")+"\n"+ today.getString("exercise_index")+"\n"+ today.getString("drying_index"); Log.d(TAG, "今天的天气情况是:"+output); } else { Log.d(TAG, "parseison: 解析错误"); } } catch (JSONException e) { e.printStackTrace(); } } }); } }

 

 

 

 

 

 

 

 

更多相关文章

  1. android之SQLite数据库insert操作
  2. android 以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新
  3. android操作sqlite3的blob字段,显示数据中的图片
  4. Android中内容提供者ContentProvider实现数据库增删改查
  5. android中如何解析没有Key的Json数据
  6. Android 中的Intent在两个Acitvity传递数据示例
  7. 数据库判断是否为某一个值时sql
  8. Android学习--动态向SPinner控件中添加数据
  9. Android数据库升级解决方案

随机推荐

  1. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动
  2. 使用kubeadm搭建高可用k8s v1.16.3集群
  3. 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-R
  4. 第六周
  5. 在k8s集群部署SonarQube
  6. STM32串口配置(1,2,3,4)
  7. 干货巨献:Openshift3.9的网络管理大全.加
  8. Python生成器详解 | 投稿
  9. 比迅雷还要快的视频下载利器You-Get
  10. 身份验证和权限管理---Openshift3.9学习