代码如下:
JSONArray arrayProductList = new JSONArray(tempJson.getString("vo"));
//解析 ProductList
for (int i = 0; i < arrayProductList.length(); i++) {
JSONObject rsProductList = arrayProductList.getJSONObject(i);
Map<String, Object> map = new HashMap<String, Object>();
map.put("borrow_name", rsProductList.getString("borrow_name"));
listDataTemp.add(map);
}
重要点:
这样的方法当解析字段很多的时候,代码量很大,并且每次修改后,代码都要做相应的修改,不利于维护。
方法2:
public static Map<String, Object> getMap(String jsonString)
{
JSONObject jsonObject;
try
{
jsonObject = new JSONObject(jsonString); @SuppressWarnings("unchecked")
Iterator<String> keyIter = jsonObject.keys();
String key;
Object value;
Map<String, Object> valueMap = new HashMap<String, Object>();
while (keyIter.hasNext())
{
key = (String) keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}
return valueMap;
}
catch (JSONException e)
{
e.printStackTrace();
}
return null;
}
/**
* 把json 转换为ArrayList 形式
* @return
*/
public static List<Map<String, Object>> getList(String jsonString)
{
List<Map<String, Object>> list = null;
try
{
JSONArray jsonArray = new JSONArray(jsonString);
JSONObject jsonObject;
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
list.add(getMap(jsonObject.toString()));
}
}
catch (Exception e)
{
e.printStackTrace();
}
return list;
}
主要点:
这种解析方式,可以通过获取key列表,然后根据key列表获取值,,,,主要优势就是减少了代码量。即使增加字段,删减字段,都不会影响代码原有功能。