如何从Android中的Json解析视频ID名称类别

时间:2016-09-07 02:57:30

标签: android json parsing

我正在尝试从http服务器解析Json文件(video.js)。 这段代码工作正常,我得到了名字和网址,所以视频播放完美,但唯一的问题是我无法在视频名称之前显示视频ID或频道号码(chid)。 我也很想知道如何把它放在Rock,RNB,POP等类别中。我用下面的json尝试了这个但是没有用。它只有在删除类别时才有效。抱歉,我是一个新手

            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] response) {// called when response HTTP status is "200 OK"
                String jsonResponse = new String(response);

                try {


                    JSONArray jsonArray = new JSONArray(jsonResponse);
                    JSONObject jsonObject;
                    String videoTitle, videoUrl, videoNum ;

                    int length = jsonArray.length();
                    for (int i = 0; i < length; ++i) {
                        jsonObject = (JSONObject) jsonArray.get(i);



                        videoTitle = jsonObject.getString("chname");
                        videoUrl = jsonObject.getString("chlink");
                        videoNum = jsonObject.getString("chid");


                        VideoItem videoItem = new VideoItem(videoTitle, videoUrl, videoNum);
                        videoList.add(videoItem);

                    }

我的Json文件

{categories: [
    {
        "chid": 1,
        "chname": "Video 1",
        "chlogo": "",
        "chlink": "http://samplevideo1.mp4",
        "chenable": "",
        "chnote": ""
    },
    {
        "chid": 2,
        "chname": "Video 2",
        "chlogo": "",
        "chlink": "http://samplevideo2.mp4",
        "chenable": "",
        "chnote": ""
    },
    {
        "chid": 3,
        "chname": "RO 3",
        "chlogo": "",
        "chlink": "http://samplevideo3.mp4",
        "chenable": "",
        "chnote":

    }
    ]
    }

我的适配器

公共类VideoSelectionListAdapter扩展了BaseAdapter {

private List<VideoItem> items;
private LayoutInflater inflater;

public VideoSelectionListAdapter(Context context,List<VideoItem> items) {
    //items = VideoItems.getItems();
    this.items=items;

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return items.size();
}

@Override
public Object getItem(int position) {
    return items.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.simple_text_item, null);

        holder = new ViewHolder();
        holder.text = (TextView) convertView.findViewById(R.id.simple_text_text_view);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.text.setText(items.get(position).getTitle());
    return convertView;
}

private static class ViewHolder {
    TextView text;
}

}

更新 这是我的VideoItem

public class VideoItem {
String title;
int mediaNum;
String mediaUrl;

public VideoItem(String title, String mediaUrl, int mediaNum) {
    this.title = title;
    this.mediaUrl = mediaUrl;
    this.mediaNum = mediaNum;
}

public String getTitle() {
    return title;
}
public int getMediaNum() {
    return mediaNum;
}
public String getMediaUrl() {
    return mediaUrl;
}

3 个答案:

答案 0 :(得分:0)

“chid”是整数而不是字符串

答案 1 :(得分:0)

int videoNum = jsonObject.getInt("chid");
// if you want to conver this value in String then :
String tempVideoNum=videoNum+"";

答案 2 :(得分:0)

如果您想显示ID以及标题,请更新此行以执行此操作。

holder.text.setText(items.get(position).getTitle())

我可能还建议为items.get(position)

的值创建一个变量
VideoItem v = items.get(position);
holder.text.setText(v.getMediaNum() + " - " + v.getTitle());