本篇三种解析的对象为json数组
JsonObject
private void parseJSON(String result) {
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i <= jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
String id = obj.optString("id");
String name = obj.optString("name");
String age = obj.optString("age");
Log.d("jsonresult", id + "::" + name + "::" + age);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
解析结果,与后面的gson和fastjson解析结果相同
gson
这是Google提供的方法:gson2.3.1包下载包
只需先创建好javabean,然后一行fromJson传入即可
private void gsonParseJson(String result) {
List<Person> persons= new ArrayList<Person>();
Gson gson = new Gson();
// Person persons= gson.fromJson(result, Person.class); // 针对非数组情况
persons= gson.fromJson(result, new TypeToken<List<Person>>() {}.getType());
for (Person person : persons) {
String id = person.getId();
String name = person.getName();
String age = person.getAge();
Log.d("jsonresult", id + "::" + name + "::" + age);
}
}
fastjson
/**
* fastjson
* example compile 'com.alibaba:fastjson:1.2.38'
*
* github https://github.com/alibaba/fastjson
*/
public class JsonT {
/**
* object --> json
*/
public static String toJson(Object obj) {
if (null == obj)
return "obj == null, plz check param obj";
String json = JSON.toJSONString(obj);
if (null != json && !"".equals(json)) {
return json;
} else {
return "";
}
}
/**
* json --> object
*/
public static <T> T toObj(String json, Class<T> clz) {
if (null == json)
throw new RuntimeException("return json is null");
return JSON.parseObject(json, clz);
}
}