JSONObject与JSONArray的区别 解析json数据

首先最常用的为JSONObject和JSONArray

JSONObject

简单说JSONObject就是Map格式json数据:

{
    "errNum": 0,
    "retMsg": "success",
    "retData": {
        "phone": "18363888888",
        "prefix": "1836385",
        "supplier": "移动",
        "province": "山东",
        "city": "烟台",
        "suit": "183卡"
    }
}

retData又是一层JSONObject,下边看怎么解析它:

try {
			JSONObject jsonObject = new JSONObject(a);
			JSONObject temp = jsonObject.getJSONObject("retData");
			String pName = (String)temp.get("province");
			String cName = (String)temp.get("city");
			
		} catch (JSONException e) {
			e.printStackTrace();
		}

这样就得到了json数据中的省和市。


JSONArray

简单说JSONArray就是数组格式的数据,用法参考JSONObject,只是格式不同,用法一直致。


现在实战,来了一个JSON数据,应该怎么处理。

第一步:
 转化为JSONObject格式

JSONObject jsonObject = new JSONObject("{"idx":1,"idx2":1}");

第二步

获取其中的数据

//第一种方式直接get
Stringtemp = jsonObject.get("key");
//第二种方式遍历
Iterator it = jsonObject.keys();
while (it.hasNext()) {// 遍历JSONObject
	String key = (String) it.next().toString();
	String result= jsonObject.get(key);
}


当JSONObecjt与JSONArray相互嵌套时,从第二步有条理取就可以了:
jsonObject.getJSONObject();
jsonObject.getJSONArray();
jsonArray.getJSONObject();
jsonArray.getJSONArray();


JSONObject转为JSON数据直接jsonObject.toString()就好了

 
  
 
  
 
  

你可能感兴趣的:(Android基础)