Gosn解析Json数组

来源:互联网 发布:数控镗床编程举例 编辑:程序博客网 时间:2024/06/10 00:56

添加依赖:

compile 'com.google.code.gson:gson:2.2.4'

通过将获取的json数据解析

httputil封装:

public static String sendGet( String code,String time) {    String url="https://way.jd.com/jisuapi/query3";    String result = "";    BufferedReader in = null;    try {        String urlNameString = "https://way.jd.com/jisuapi/query3?caipiaoid=13&issueno=2014127&appkey=d3a62ea686a062d5a5ba1b91fda4f1df";        URL realUrl = new URL(urlNameString);        // 打开和URL之间的连接        URLConnection connection = realUrl.openConnection();        // 设置通用的请求属性        connection.setRequestProperty("accept", "*/*");        connection.setRequestProperty("connection", "Keep-Alive");        connection.setRequestProperty("user-agent",                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");        // 建立实际的连接        connection.connect();        // 获取所有响应头字段        Map<String, List<String>> map = connection.getHeaderFields();        // 遍历所有的响应头字段        for (String key : map.keySet()) {            System.out.println(key + "--->" + map.get(key));        }        // 定义 BufferedReader输入流来读取URL的响应        in = new BufferedReader(new InputStreamReader(                connection.getInputStream()));        String line;        while ((line = in.readLine()) != null) {            result += line;        }    } catch (Exception e) {        System.out.println("发送GET请求出现异常!" + e);        e.printStackTrace();    }    // 使用finally块来关闭输入流    finally {        try {            if (in != null) {                in.close();            }        } catch (Exception e2) {            e2.printStackTrace();        }    }    return result;}

获取的json数组:{"code":"10000","charge":false,"msg":"查询成功","result":{"msg":"ok","result":{"number":"05 07 10 18 19 21 27","refernumber":"28","saleamount":"7482530","caipiaoid":"13","opendate":"2014-10-29","totalmoney":"","issueno":"2014127","deadline":"2014-12-27","prize":[{"num":"0","singlebonus":"0","require":"中7+0","prizename":"一等奖"},{"num":"9","singlebonus":"27603","require":"中6+1","prizename":"二等奖"},{"num":"245","singlebonus":"2028","require":"中6+0","prizename":"三等奖"},{"num":"773","singlebonus":"200","require":"中5+1","prizename":"四等奖"},{"num":"8165","singlebonus":"50","require":"中5+0","prizename":"五等奖"},{"num":"14423","singlebonus":"10","require":"中4+1","prizename":"六等奖"},{"num":"95000","singlebonus":"5","require":"中4+0","prizename":"七等奖"},{"num":"0","singlebonus":"0","require":"中4+0","prizename":""}]},"status":"0"}}

使用GsonFormat格式,生成Bean类

AS里面有插件,这里不做多述

开始解析:

private void getData(final String code, final String time) {    new Thread(new Runnable() {        @Override        public void run() {            json = HttpUtil.sendGet(code, time).replace("\\", "");            runOnUiThread(run);        }    }).start();}Runnable run = new Runnable() {    @Override    public void run() {        Gson gson = new Gson();        CaiPiao resultBeanX1 = gson.fromJson(json, CaiPiao.class);        Log.i("TAG==========", json);        qishu.setText(resultBeanX1.getResult().getResult().getIssueno());        haoma.setText(resultBeanX1.getResult().getResult().getNumber());        xiaoshoujine.setText(resultBeanX1.getResult().getResult().getSaleamount());        jiangchijine.setText(resultBeanX1.getResult().getResult().getTotalmoney());    }};

坑来了:Gson解析Json数据首先得从最外层进行解析,否则会看不到数据