作者主页:乱披风锤的个人博客主页.跳转到个人简介
我和友友们一样喜欢编辑,天天敲代码,沉迷学习,日渐消瘦。很荣幸能向大家分享我的所学,和大家一起进步。如果文章有错误,欢迎在评论区指正。那么开始今天的学习吧!
支持我:点赞+收藏⭐️+留言
AndroidManifest.xml加入
<uses-permission android:name="android.permission.INTERNET"/>
android:usesCleartextTraffic="true"
implementation 'com.google.code.gson:gson:2.9.0'
package com.hnucm.network;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SignalStrength;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.google.gson.Gson;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
//网络请求 得到数据 解析JSON数据
@Override
protected void onResume() {
super.onResume();
}
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//{ "age":30,"name":"张三", "isstudent":true }
textView=findViewById(R.id.TextView);
//findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
//解决办法->换一个线程 创建一个新线程
Thread thread=new Thread(){
@Override
public void run() {
super.run();
//run方法里面执行代码就是在子线程
try {
URL url = new URL("http://121.4.44.56/object1\n");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
InputStream inputStream = urlConnection.getInputStream();// 字节流
Reader reader = new InputStreamReader(inputStream);//字符流
BufferedReader bufferedReader = new BufferedReader(reader);// 缓存流
String result = "";
String temp;
while ((temp = bufferedReader.readLine()) != null) {
result += temp;
}
Log.i("MainActivity", result);
//所有UI操作应该在主线程中执行
//切换到主线程
String finalResult=result;
runOnUiThread(new Runnable() {
@Override
public void run() {
//一次性将JSON解析为一个对象
Gson gson=new Gson();
Student student = gson.fromJson(finalResult, Student.class);
textView.setText(student.class1.classname);
//object1 { "age":20,"name":"张三", "isstudent":true,"class":{"grade":"18级","classname":"计算机科学与技术"} }
//object2 { "grade":"18级","classname":"计算机科学与技术","students":["张三","李四","王五"] }
// object3 { "grade":"18级","classname":"计算机科学与技术","students":[ { "id":"001","age":30,"name":"张三", "isstudent":false }, { "id":"002","age":25,"name":"李四", "isstudent":true }, { "id":"003","age":26,"name":"王五", "isstudent":true } ]}
//字符串 ,整型 ,浮点型 ,布尔 ,Json类型 ,数组
// try {
// JSONObject jsonObject=new JSONObject(finalResult);
//
// JSONArray jsonArray=jsonObject.getJSONArray("students");
// for (int i=0;i
// // String student = jsonArray.getString(i);
// //Log.i("MainActivity",student);
//
// JSONObject studentObj=jsonArray.getJSONObject(i);
// String name=studentObj.getString("name");
// String id=studentObj.getString("id");
// int age=studentObj.getInt("age");
// Log.i("MainActivity","name="+name+"id="+id+"age="+age);
// }
// //JSONObject classObject=jsonObject.getJSONObject("class");
// // String classname = classObject.getString("classname");
// // String name= jsonObject.getString("name");
//
// textView.setText(jsonArray.getString(1));
//
// } catch (JSONException e) {
// e.printStackTrace();
// }
// textView.setText(finalResult);
}
});
//textView.setText(result);
inputStream.close();
reader.close();
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
// }
//});
}
}
好了,那么今天的学习就到这里了。友友们觉得不错的可以给个关注,点赞或者收藏哦!感谢各位友友们的支持。以下的代码希望各位大佬们自行检验哦,毕竟亲手操作让记忆更加深刻。