您的位置:首页 > 移动开发 > Android开发

Android进阶_简单JSON解析

2016-04-22 09:50 645 查看
GSON地址:https://github.com/google/gson

fastjson地址:https://github.com/alibaba/fastjson

解析复杂Json的时候,GSON不可以将JSONArray和JSONObjec转成String来处理,

fastjson可以。

GSON解析

public class JsonGsonTools {

private static Gson gson = new Gson();
private static JsonParser parser = new JsonParser();

/**
* 解析JSONObject
* @param json
* @param cla
* @return
*/
public static <T extends Object> T parseJsonToBean(String json, Class<T> cla) {
T bean = null;
try {
bean = gson.fromJson(json, cla);
} catch (Exception e) {
return null;
}
return bean;
}

/**
* 解析JSONArray
* @param json
* @param type      new TypeToken<ArrayList<(Bean)>>() {}.getType()
* @return
*/
public static <T extends Object> List<T> parseJsonToBeanList(String json, Type type) {
List<T> list = new ArrayList<T>();
try {
list = gson.fromJson(json, type);
} catch (Exception e) {
return null;
}
return list;
}

/**
* 解析JSONArray
* @param json
* @param cla
* @return
*/
public static <T> List<T> parseJsonToBeanList(String json, Class<T> cla) {
List<T> list = new ArrayList<T>();
try {
JsonArray array = parser.parse(json).getAsJsonArray();
for (JsonElement element : array) {
list.add(gson.fromJson(element, cla));
}
} catch (Exception e) {
return null;
}
return list;
}

}


fasejson解析

public class JsonFastjsonTools {

/**
* 解析JSONObject
* @param result
* @param c
* @return
*/
public static <T> T parseJsonToBean(String result, Class<T> c) {
T data;
try {
data = JSON.parseObject(result, c);
} catch (Exception e) {
return null;
}

return data;
}

/**
* 解析JSONArray
* @param result
* @param c
* @return
*/
public static <T> List<T> parseJsonToBeanList(String result, Class<T> c) {
List<T> list;
try {
list = JSON.parseArray(result, c);
} catch (Exception e) {
return null;
}

return list;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android json gson fastjson