我试图找到一种简单的方法来解析数组中的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数组并保存数据,然后用数据行填充视图。任何帮助都非常感谢先进。