Android的GSON数据解析

GSON可以去GitHub上获取依赖

先看看我们准备解析的GSON代码
有数据头类型的复杂数据

{
  "totalHits": 500,
  "hits": [
    {
      "largeImageURL": "https://pixabay.com/get/55e0d340485aa814f6da8c7dda79367a113fd7ed50536c4870287cd5904fc15cb9_1280.jpg",
      "likes": 1051,
      "id": 3063284
    },
    {
      "largeImageURL": "https://pixabay.com/get/53e2d646424fad0bffd8992cc62c337e1c37dde74e50744e722e7cd69349c4_1280.jpg",
      "likes": 193,
      "id": 52358
    }
  ],
  "total": 22247
}

建立一个class
名字为 Test_one

package com.huatex.json_arr;

import java.util.List;

public class Test_one {
//这里对应上面json的    Key值
    private String totalHits;
    private String total;
    // list列表是因为上面的json有一个数组,这种包含关系的需要单独提出来
    // hits 是下面定义的,对应的是 [] 这个括号里面的内容
    //这个也可以定义到外面,然后调用
    private List<hits> hits;
    
// 这里是 重写和get,set  为了简洁我就不写了

    public class hits {
        private String largeImageURL;
        private String id;
        private String likes;

       // 这里是 重写和get,set  为了简洁我就不写了


}

Main方法

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //这里new一个Gson对象,下面要用
        Gson gson = new Gson();

        String s = "{\n" +
                "  \"totalHits\": 500,\n" +
                "  \"hits\": [\n" +
                "    {\n" +
                "      \"largeImageURL\": \"https://pixabay.com/get/55e0d340485aa814f6da8c7dda79367a113fd7ed50536c4870287cd5904fc15cb9_1280.jpg\",\n" +
                "      \"likes\": 1051,\n" +
                "      \"id\": 3063284\n" +
                "    },\n" +
                "    {\n" +
                "      \"largeImageURL\": \"https://pixabay.com/get/53e2d646424fad0bffd8992cc62c337e1c37dde74e50744e722e7cd69349c4_1280.jpg\",\n" +
                "      \"likes\": 193,\n" +
                "      \"id\": 52358\n" +
                "    }\n" +
                "  ],\n" +
                "  \"total\": 22247\n" +
                "}";
                //  这个解析的是外层的     这里传入两个参数  
        Test_one test_one = gson.fromJson(s,Test_one.class);
        //这里解析的是内层的 也就是 []  里面的内容
        List<Test_one.hits> hitsList = test_one.getHits();
        
        //这个代码可以直接解析到list列表里面
        //用这个可以不用上面那两个
        List<Test_one> userList = gson.fromJson(s, new TypeToken<List<Test_one>>(){}.getType());

    }
}

debug得到解析的内容
内外层都解析到了
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值