public static ArrayList<Person> parseResult(String wsResponse) throws DataException {
ArrayList<Person> personList = new ArrayList<Person>();
try {
JSONObject parser = new JSONObject(wsResponse);
JSONObject jsonRoot = parser.getJSONObject(JSONTag.PERSON_LIST_ELEM_PEOPLE);
JSONArray jsonArray = jsonRoot
.getJSONArray(JSONTag.PERSON_LIST_ELEM_PERSON);
int size = jsonArray.length();
for (int i = 0; i < size; i++) {
JSONObject json = jsonArray.getJSONObject(i);
Person person = new Person();
person.name = json.getString(JSONTag.PERSON_LIST_ELEM_PERSON_NAME);
personList.add(person);
}
} catch (JSONException e) {
Log.e(TAG, "JSONException", e);
throw new DataException(e);
}
return personList;
}
答案 0 :(得分:1)
解析JSON的方法取决于您的JSON格式。 JSON有两种模式:
JSON数组:
{“myarray”:[{obj1},{obj2},{obj3},...]]
JSON对象:
{“myobject”:{field1:“”,field2:“”,...}}
您只需要使用相应的代码即可。 在您粘贴的代码中,我需要一个JSON数组。
如果您只有一个对象,只需将代码修改为仅使用一个对象即可。有些类似于:
JSONObject parser = new JSONObject(wsResponse);
JSONObject jsonRoot = parser.getJSONObject(JSONTag.PERSON_LIST_ELEM_PEOPLE);
JSONObject json = jsonRoot.getJSONObject(JSONTag.<<MY_OBJECT>>)
person.name = json.getString(JSONTag.PERSON_LIST_ELEM_PERSON_NAME);