«

Android中获取JSON

时间:2024-3-2 19:49     作者:韩俊     分类: Android


/**

  • 数据形式:{"id":1,"isNo":false,"data":[{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":2,"name":"王五"}]}
    /
    public static List<Map<String, String>> getJSONObject(String path) throws Exception {
    List<Map<String, String>> list = new ArrayList<Map<String, String>>();
    Map<String, String> map = null;
    URL url = new URL(path);
    // HttpURLConnection可以从网络中获取数据.
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    //
    设置超时时间
    conn.setConnectTimeout(5
    1000);
    conn.setRequestMethod("GET");//这个应该都知道是干嘛的,默认是GET
    if (conn.getResponseCode() == 200) {// 判断请求码,不是200则为请求失败
    InputStream is = conn.getInputStream(); // 获取输入流
    byte[] data = readStream(is);
    String json = new String(data);

        JSONObject jsonObject=new JSONObject(json);     //返回的数据形式是一个Object类型
    
        int total=jsonObject.getInt(&quot;id&quot;);     
        Boolean success=jsonObject.getBoolean(&quot;isNo&quot;);
    
        JSONArray jsonArray = jsonObject.getJSONArray(&quot;data&quot;);//用getJSONArray获取数组     
        for (int i = 0; i &lt; jsonArray.length(); i&#43;&#43;) {     
            JSONObject item = jsonArray.getJSONObject(i);     
            int id = item.getInt(&quot;id&quot;);      
            String name = item.getString(&quot;name&quot;);     
    
            map = new HashMap&lt;String, String&gt;();   
            map.put(&quot;id&quot;, id &#43; &quot;&quot;);     
            map.put(&quot;name&quot;, name);     
            list.add(map);     
        }     
    }         
    
    return list;     

    }
    此为{"id":1,"isNo":false,"data":[{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":2,"name":"王五"}]}
    类型的JSON,其他类型的都可以通过此方法获得,转换时举一反三就可以了。

        <p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>

标签: android

热门推荐