学习记录:
简单学习一下Android Studio课程中的解析JSON数据。
参考资料: Android JSON数据解析
案列中用到的API地址:
地址1:http://api.qingyunke.com/api.php?key=free&appid=0&msg=上海天气
地址2:http://t.weather.itboy.net/api/weather/city/101020100
案例效果:
初运行:
点击 “简单天气” 按钮:
点击 “复杂天气” 按钮
案列代码
布局文件:activity_main.xml
布局比较简单:2个button 和 1个textView
主活动类:MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.json.JSONArray;
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;
public class MainActivity extends AppCompatActivity {
private Button btn1,btn2;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=findViewById(R.id.textView);
btn1=findViewById(R.id.button);
btn2=findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendRequestWithHttpURLConnection();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendRequestWithHttpURLConnection2();
}
});
}
private void sendRequestWithHttpURLConnection() {
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL("http://api.qingyunke.com/api.php?key=free&appid=0&msg=上海天气");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);