ParseDataActivity.java
package cn.edu.zufe.app002;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import java.util.List;
import cn.edu.zufe.app002.interfaci.HttpCallback;
import cn.edu.zufe.app002.bean.UserInfo;
import cn.edu.zufe.app002.util.HttpUtil;
public class ParseDataActivity extends AppCompatActivity implements View.OnClickListener{
private Button btnRequest;
private TextView tvUsers;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parse_data);
btnRequest = (Button) findViewById(R.id.btn_request);
tvUsers = (TextView) findViewById(R.id.tv_users);
btnRequest.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_request:
HttpUtil.sendHttpRequest("http://jackie.vaiwan.com/cn.edu.zufe.app002/get_data.json", new HttpCallback() {
@Override
public void onFinish(String reponse) {
showResponse(reponse);
}
@Override
public void onError(Exception e) {
}
});
}
}
void showResponse(final String text) {
runOnUiThread(new Runnable() {
@Override
public void run() {
StringBuilder builder = new StringBuilder();
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray jsonElements = parser.parse(text).getAsJsonArray();
List<UserInfo> userInfoList;
for(int i=0; i<jsonElements.size(); i++) {
UserInfo info = gson.fromJson(jsonElements.get(i), UserInfo.class);
builder.append(String.format("id=%s\nname=%s\nage=%s\nheight=%s\nweight=%s\nsex=%s\nupdate_time=%s\nphone=%s\npassword=%s\n",
info.getId(), info.getName(), info.getAge(), info.getHeight(), info.getWeight(), info.getSex(), info.getUpdateTime(), info.getPhone(), info.getPassword()
));
}
tvUsers.setText(builder.toString());
}
});
}
}
activity_parse_data.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ParseDataActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_request"
android:text="请求数据" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tv_users" />
</LinearLayout>
get_data.json
[
{"id":"1", "name":"tpb", "age":"20", "height":"170", "weight":"100", "sex":"man", "updatetime":"2020-03-24", "phone":"18855782456", "password":"123456"},
{"id":"2", "name":"jakcie", "age":"18", "height":"175", "weight":"120", "sex":"man", "updatetime":"2020-03-24", "phone":"18855782456", "password":"123456"},
{"id":"3", "name":"bob", "age":"19", "height":"172", "weight":"105", "sex":"man", "updatetime":"2020-03-24", "phone":"18855782456", "password":"123456"}
]