Android:网络:获取JSON格式数据

来源:互联网 发布:深圳网络出租屋牌照 编辑:程序博客网 时间:2024/06/06 17:24

public class News {
    private Integer id;
    private String title;
    private Integer timelength;

...

}

        ListView listView = (ListView) this.findViewById(R.id.listView);

        try {
            List<News> videos = VideoNewsService.getJSONLastNews();//需修改成你本机的Http请求路径
            List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();
            for(News news : videos){
                HashMap<String, Object> item = new HashMap<String, Object>();
                item.put("id", news.getId());
                item.put("title", news.getTitle());
                item.put("timelength", getResources().getString(R.string.timelength)
                        + news.getTimelength()+ getResources().getString(R.string.min));
                data.add(item);
            }
            SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,
                    new String[]{"title", "timelength"}, new int[]{R.id.title, R.id.timelength});

            listView.setAdapter(adapter);




public static List<News> getJSONLastNews() throws Exception{
        String path = "http://192.168.0.168:8080/web/ListServlet";
        URL url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setRequestMethod("GET");
        if(conn.getResponseCode() == 200){
            InputStream inStream = conn.getInputStream();
            return parseJSON(inStream);
        }
        return null;
    }
    /**
     * 解析JSON数据
     * @param inStream
     * @return
     */
    private static List<News> parseJSON(InputStream inStream) throws Exception{
        List<News> newses = new ArrayList<News>();
        byte[] data = StreamTool.read(inStream);
        String json = new String(data);
        JSONArray array = new JSONArray(json);
        for(int i = 0 ; i < array.length() ; i++){
            JSONObject jsonObject = array.getJSONObject(i);
            News news = new News(jsonObject.getInt("id"), jsonObject.getString("title"), jsonObject.getInt("timelength"));
            newses.add(news);
        }
        return newses;
    }




Servlet:

List<News> videos = service.getLastNews();

// [{id:56,title:"xxxxx",timelength:90},{id:16,title:"xbbx",timelength:20}]
            StringBuilder builder = new StringBuilder();
            builder.append('[');
            for(News news : videos){
                builder.append('{');
                builder.append("id:").append(news.getId()).append(',');
                builder.append("title:\"").append(news.getTitle()).append("\",");
                builder.append("timelength:").append(news.getTimelength());
                builder.append("},");
            }
            builder.deleteCharAt(builder.length() - 1);
            builder.append(']');
            request.setAttribute("json", builder.toString());
            request.getRequestDispatcher("/WEB-INF/page/jsonvideonews.jsp").forward(request, response);


JSP:

<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>${json}

0 0
原创粉丝点击