如何在Android

时间:2016-05-26 20:10:23

标签: android json okhttp

我试图找到一种简单的方法来解析数组中的JSON数据。之前我已经能够使用纯JSON对象和OkHttp。

我打算做的是制作一个简单的回收站视图,每行包含来自JSON阵列的数据。

注意:每个阵列中都有一些键可能有也可能没有"观众"参数。如果它不存在,我打算将默认值设为0.

JSON示例:

{
status_code: 200,
status_text: "OK",
errors: [ ],
data: {
items: [
{
stream: "channel1",
status: 1,
channel: 527,
provider: "akamai"
},
{
stream: "channel2",
status: 2,
channel: 565,
provider: "akamai",
viewers: 3
},

我有一个类来存储名为CurrentStreams.java的数据(不确定是否需要JSON数组)

package com.example.concurrent;

public class CurrentStreams {
    private String mStream;
    private int mStatus;
    private int mChannel;
    private String mProvider;
    private int mViewers;


    public String getStream() {
        return mStream;
    }

    public void setStream(String stream) {
        mStream = stream;
    }

    public int getStatus() {
        return mStatus;
    }

    public void setStatus(int status) {
        mStatus = status;
    }

    public int getChannel() {
        return mChannel;
    }

    public void setChannel(int channel) {
        mChannel = channel;
    }

    public String getProvider() {
        return mProvider;
    }

    public void setProvider(String provider) {
        mProvider = provider;
    }

    public int getViewers() {
        return mViewers;
    }

    public void setViewers(int viewers) {
        mViewers = viewers;
    }


}

在我的MainActivity中,我启动一个新的OkHttpClient并创建请求并传递一个名为getCurrentDetails(jsonData)的方法,该方法包含以下内容

private CurrentStreams getCurrentDetails(String jsonData) throws JSONException {
        //New JSON Array
        JSONArray jsonArray = new JSONArray(jsonData);
        for (int i = 0; i < jsonArray.length(); i++){

            JSONObject items = jsonArray.getJSONObject(i);
            String streamName = items.getString("stream_name");
            int status = items.getInt("status");
            int channelId = items.getInt("channel_id");
            String cdn = items.getString("cdn");
            int viewers = items.getInt("viewers");
        }

    }

我认为我有点迷失在如何正确处理JSON数组并保存数据,然后用数据行填充视图。任何帮助都非常感谢先进。

1 个答案:

答案 0 :(得分:1)

我建议使用gson。

您可能想要查看此answer或此Tutorial