Android解析JSON数据

在这里插入图片描述

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"}
]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值