Android的JSON解析
public class JSONParser {
// 本類是用于解析數據返回的數據用的。
// 返回數據的格式都是JSON,但是可以分為2種,一種是key、values的值對,另一種就是值對數組的數據,分別用兩種方法進行解析。
// 下面的方法是解析第一種的,傳入參數為服務器返回的數據字符串和由數據key組成的數組,解析后返回值為
// HashMap<String , Object>,就是我們需要的值對。
public HashMap<String, Object> getJSONParserResult(String JSONString,
String[] key) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
try {
JSONObject result = new JSONObject(JSONString).getJSONObject(
"NewDataSet").getJSONObject("Table");
for (int i = 0; i < key.length; i++) {
if (result.has(key[i])) {
hashMap.put(key[i], result.get(key[i]));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hashMap;
}
// 下面的方法是解析第二種的,傳入參數為服務器返回的數據字符串和由數據key組成的數組,解析后返回值為
// ArrayList<HashMap<String , Object>>,就是我們需要的值對數組。
public ArrayList<HashMap<String, Object>> getJSONParserResultArray(
String JSONString, String[] key) {
ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> hashMap;
try {
JSONObject result = new JSONObject(JSONString)
.getJSONObject("NewDataSet");
JSONArray resultArray = result.getJSONArray("Table");
for (int i = 0; i < resultArray.length(); i++) {
JSONObject resultTemp = (JSONObject) resultArray.opt(i);
hashMap = new HashMap<String, Object>();
for (int j = 0; j < key.length; j++) {
if (resultTemp.has(key[j])) {
hashMap.put(key[j], resultTemp.get(key[j]));
}
}
arrayList.add(hashMap);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arrayList;
}
} </pre><br />
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!