更为简单的JsonString数据与Map,List之间的转换

前篇文章有说到JSONObject数据与Map,ArrayList之间的转换,需要导入下面的一些jar包,后来发现不用导入也可以直接转换。

json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
commons-logging.jar
commons-lang.jar
commons-collections.jar
commons-beanutils.jar

JsonString数据转换成Map集合
   /**
     *   将json 数组转换为Map 对象
     * @param jsonString
     * @return
     */ 
    public static Map getMap(String jsonString) 
    { 
      JSONObject jsonObject; 
      try 
      { 
       jsonObject = new JSONObject(jsonString);   @SuppressWarnings("unchecked") 
       Iterator keyIter = jsonObject.keys(); 
       String key; 
       Object value; 
       Map valueMap = new HashMap(); 
       while (keyIter.hasNext()) 
       { 
        key = (String) keyIter.next(); 
        value = jsonObject.get(key); 
        valueMap.put(key, value); 
       } 
       return valueMap; 
      } 
      catch (JSONException e) 
      {  
       e.printStackTrace(); 
      } 
      return null; 
    } 
  • 通过这个就可以把Map集合中的各个键值拿出来
    Map map = getMap(entity);
    for(Map.Entry m:map.entrySet()){
    Log.i(TAG,"--------key------:" + m.getKey() + " value" +m.getValue());

JsonString的数组数据转换成List>数据的集合

 /**
     * 把json 转换为ArrayList 形式
     * @return
     */ 
    public static List> getList(String jsonString) 
    { 
      List> list = null; 
      try 
      { 
       JSONArray jsonArray = new JSONArray(jsonString); 
       JSONObject jsonObject; 
        list = new ArrayList>(); 
       for (int i = 0; i < jsonArray.length(); i++) 
       { 
        jsonObject = jsonArray.getJSONObject(i); 
        list.add(getMap(jsonObject.toString())); 
       } 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
      return list; 
    } 
  • 这样就能拿到数组中的数据,在遍历一次就可以拿到各个键值了
    List> mapList = getList(person);
    int size = mapList.size();
    for (int i = 0; i < size; i++) {
    Map map1ist = mapList.get(i);
    for (Map.Entry m : map1ist.entrySet()) {
    Log.i(TAG,"---key:---list---" + m.getKey() + " value" +
    }
    }

通过这样的方法来转换JsonString数据为Map和List。不仅更为简单,而且避免了jar包过时和相互冲突的问题。

你可能感兴趣的:(更为简单的JsonString数据与Map,List之间的转换)