Android TypeToken 解析

                    //获取json串
                    String json= (String) msg.obj;
                    //进行gson解析
                    Gson gson=new Gson();
                    //纯数组的解析方式
                    Type listtype = new TypeToken<LinkedList<GsonBean>>() {}.getType();
                    LinkedList<GsonBean> list=gson.fromJson(json, listtype);
                    //获取json里面的参数
                    List<GsonBean.ItemBean> item = list.get(0).getItem();
                    //实例化一个MyAdapter
                    MyAdapter adapter = new MyAdapter(getActivity(), item);
                    listView.setAdapter(adapter);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 中,请求网络并解析 JSON 数据可以使用常见的网络请求库和 JSON 解析库。以下是使用 OkHttp 和 Gson 进行网络请求和 JSON 解析的示例代码。 1. 添加依赖 在 build.gradle 文件中添加以下依赖: ``` dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.0' implementation 'com.google.code.gson:gson:2.8.6' } ``` 2. 发起网络请求 使用 OkHttp 发起 GET 请求,并将返回的 JSON 数据作为字符串返回。 ``` public static String doGetRequest(String url) throws IOException { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); return response.body().string(); } ``` 3. 解析 JSON 数据 使用 Gson 解析 JSON 数据,并将其转换为 Java 对象。 例如,假设我们有一个包含人名和年龄的 JSON 数据: ``` { "people": [ { "name": "Tom", "age": 25 }, { "name": "Bob", "age": 30 }, { "name": "Alice", "age": 27 } ] } ``` 我们可以定义一个 Person 类来表示每个人,并使用 Gson 将 JSON 数据转换为 Person 类的 List。 ``` public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public static List<Person> parseJson(String json) { Gson gson = new Gson(); Type type = new TypeToken<List<Person>>(){}.getType(); return gson.fromJson(json, type); } ``` 4. 使用示例 在 Activity 或 Fragment 中使用以上代码进行网络请求和 JSON 解析。 ``` new Thread(() -> { try { String json = doGetRequest(url); List<Person> people = parseJson(json); // 在 UI 线程中更新 UI runOnUiThread(() -> { // 处理返回的数据 }); } catch (IOException e) { e.printStackTrace(); } }).start(); ``` 其中,url 是请求的地址,可以是任何支持 GET 请求的 API。在 Android 开发中,为了避免在主线程中执行耗时操作,建议将网络请求放在子线程中执行。在使用返回的数据更新 UI 时,需要使用 runOnUiThread 方法切换到主线程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值