Android读取assets下的json文件后转化实体类

1、assets下的json文件内容:

{
  "code": 200,
  "message": "获取成功",
  "data":[
    {
      "id":"001",
      "name":"小猪",
      "img":"StringURL1"
    },
    {
      "id":"002",
      "name":"小猫",
      "img":"StringURL2"
    },
    {
      "id":"003",
      "name":"小狗",
      "img":"StringURL3"
    }
  ]
}

2、创建实体类MyBean.java

public class MyBean {
    private int code;
    private String message;
    private List<DataBean> data;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean{
        private String id;
        private String name;
        private String img;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getImg() {
            return img;
        }

        public void setImg(String img) {
            this.img = img;
        }
    }
}

3、读取assets下的json文件后转化实体类,AssetsUtil.java

//调用到AssetsUtil.java来读取assets下的json文件后转化实体类
public class AssetsUtil {
    public static List<MyBean.DataBean> getStates(Context context) {
        InputStream is = null;
        ByteArrayOutputStream bos = null;
        try {
            is = context.getAssets().open("data.json");
            bos = new ByteArrayOutputStream();
            byte[] bytes = new byte[4 * 1024];
            int len = 0;
            while ((len = is.read(bytes)) != -1) {
                bos.write(bytes, 0, len);
            }
            final String json = new String(bos.toByteArray());
            Gson gson = new Gson();
            final MyBean MyBean = gson.fromJson(json, MyBean.class);
            final List<MyBean.DataBean> dataBeans = MyBean.getData();

            return dataBeans;
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (is != null)
                    is.close();
                if (bos != null)
                    bos.close();
            } catch (IOException e) {
                Log.e(TAG, "getStates", e);
            }
        }
        return null;
    }
}

4、MainActivity.java

public class MainActivity extends AppCompatActivity {
    private List<MyBean.DataBean> dataBeans;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dataBeans = new ArrayList<>();
        dataBeans = AssetsUtil.getStates(this);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬sir哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值