解决方案 »

  1.   

     JSONObject obj = new JSONObject("");
            String size = obj.optString("size");
            JSONArray array = new JSONArray(obj.optString("array"));
            for(int i = 0 ;i < array.length() ; i++){
                JSONObject objs = new JSONObject(array.getJSONObject(i));
                String uid = objs.optString("uid");
                .....;
            }
      

  2.   

    用Gson包 很简单的,不过要借助下javaBean对象。package com.devil.pojo;import java.util.List;public class A { private List<B> array;
    private int size; public List<B> getArray() {
    return array;
    } public void setArray(List<B> array) {
    this.array = array;
    } public int getSize() {
    return size;
    } public void setSize(int size) {
    this.size = size;
    }}package com.devil.pojo;public class B { private String UID;
    private String IP; public String getUID() {
    return UID;
    } public void setUID(String uID) {
    UID = uID;
    } public String getIP() {
    return IP;
    } public void setIP(String iP) {
    IP = iP;
    }}private void T() {
    String json = "{'array':[{'UID':'LACA6C0284SGCM8','IP':'192.168.1.112'},{'UID':'LACA6C0284UMFKY','IP':'192.168.1.127'},{'UID':'LACA6C0284KCXNU','IP':'192.168.1.106'}],'size':3}";
    A a = JsonUtil.parse(json, A.class);
    for (B b : a.getArray()) {
    Log.e("DEVIL", b.getUID() + "  " + b.getIP());
    }
    }
    03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284SGCM8  192.168.1.112
    03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284UMFKY  192.168.1.127
    03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284KCXNU  192.168.1.106
    /**
     * 将json字符串转换成对象
     * 
     * @param json
     * @param type
     * @return
     */
    public static <T> T parse(String json, Class<T> type) {
    Gson gson = new Gson();
    T t = null;
    try {
    t = gson.fromJson(json, type);
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    } return t;
    }
      

  3.   

        public static List<Map<String, Object>> getListMaps(String key, String jsonString){  
            List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();  
            try {  
                JSONObject jsonObject = new JSONObject(jsonString);  
                JSONArray jsonArray = jsonObject.getJSONArray(key);  
                for(int i = 0; i < jsonArray.length(); i++){  
                    JSONObject jsonObject2 = jsonArray.getJSONObject(i);  
                    Map<String, Object> map = new HashMap<String, Object>();  
                    // 通过org.json中的迭代器来取Map中的值。  
                    Iterator<String> iterator = jsonObject2.keys();  
                    while(iterator.hasNext()) {  
                        String jsonKey = iterator.next();  
                        Object jsonValue = jsonObject2.get(jsonKey);  
                        //JSON的值是可以为空的,所以我们也需要对JSON的空值可能性进行判断。  
                        if(jsonValue == null){  
                            jsonValue = "";  
                        }  
                        map.put(jsonKey, jsonValue);  
                    }  
                    listMap.add(map);  
                }  
            } catch (Exception e) {  
                // TODO: handle exception  
            }  
            return listMap;  
        }  
      

  4.   

    你们的方法都不错,谢谢你们!
    t = gson.fromJson(json, type);为什么这个老是得到空值,有没遇到过?
      

  5.   

    public static List<Bean> pullJson(String jsonStr)
    {
    List<Bean> list = null;
    Bean bean = null;
    try {
    JSONObject jsonObject = new JSONObject(jsonStr);
    JSONArray jArray = jsonObject.getJSONArray("array");
    //JSONArray jArray = (JSONArray) jsonObject.get("array");
    list = new ArrayList<Bean>();
    for (int i = 0; i < jArray.length(); i++) {
    bean = new Bean();
    JSONObject jsonObject2 = (JSONObject)jArray.get(i);
    bean.setuId(jsonObject2.getString("UID"));
    bean.setIp(jsonObject2.getString("IP"));
    list.add(bean);
    }
    bean.setSize(jsonObject.getInt("size"));
    return list;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }