JSON解析全面综合,实用篇
来源:互联网 发布:微信刷票软件免费版 编辑:程序博客网 时间:2024/06/06 09:33
//为了方便,直接把json解析工具类,复制过来了
public class JsonUtil {/** * 将json字符串转换成实体类 * * @param <T> * @param strJson * 需要解析的json字符串 * @param beanClass * 需要解析成的实体类型 * @return */public static <T> T getEntityByJsonString(String strJson, Class beanClass)throws Exception {Gson gson = new Gson();T t = (T) gson.fromJson(strJson, beanClass);return t;}public static String getJsonStringByEntity(Object o) {String strJson = "";Gson gson = new Gson();strJson = gson.toJson(o);return strJson;}public static <E> String getJsonStringByList(List<E> list) {StringBuilder strJson = new StringBuilder("[");Gson gson = new Gson();for (int i = 0; i < list.size(); i++) {if (i != list.size() - 1) {strJson.append(gson.toJson(list.get(i)) + ",");} else {strJson.append(gson.toJson(list.get(i)));}}strJson = strJson.append("]");return strJson.toString();}/** * 将json字符串转换成实体类的List * * @param <T> * @param strJson * 需要解析的json字符串 * @param beanClass * 需要解析成的实体类型 * @return * @throws JSONException */public static <T> List<T> getListByJsonString(String strJson,Class<T> beanClass) throws JSONException {List<T> list = new ArrayList<T>();Gson gson = new Gson();JSONArray ja = new JSONArray(strJson);for (int i = 0; i < ja.length(); i++) {JSONObject jo = ja.getJSONObject(i);T t = gson.fromJson(jo.toString(), beanClass);list.add(t);}return list;}/** * 解析出字符串的List * @param strJson * @return * @throws JSONException */public static List<String> getListString(String strJson)throws JSONException {List<String> list = new ArrayList<String>();JSONArray ja = new JSONArray(strJson);for (int i = 0; i < ja.length(); i++) {list.add(ja.getString(i));}return list;}/** * 解析出字符串的List * @param strJson * @return * @throws JSONException */public static List<Integer> getListInt(String strJson)throws JSONException {List<Integer> list = new ArrayList<Integer>();JSONArray ja = new JSONArray(strJson);for (int i = 0; i < ja.length(); i++) {list.add(ja.getInt(i));}return list;}/** * 通过json字符串得到3级嵌套list * * @param <T> * @param strJson * @param beanClass * @return * @throws JSONException */public static <T> List<List<List<T>>> get3ListByJsonString(String strJson,Class<T> beanClass) throws JSONException {List<List<List<T>>> list = new ArrayList<List<List<T>>>();Gson gson = new Gson();JSONArray ja1 = new JSONArray(strJson);for (int i = 0; i < ja1.length(); i++) {JSONArray ja2 = ja1.getJSONArray(i);List<List<T>> list2 = new ArrayList<List<T>>();for (int j = 0; j < ja2.length(); j++) {JSONArray ja3 = ja2.getJSONArray(j);List<T> list3 = new ArrayList<T>();for (int k = 0; k < ja3.length(); k++) {JSONObject jo = ja3.getJSONObject(k);T t = gson.fromJson(jo.toString(), beanClass);list3.add(t);}list2.add(list3);}list.add(list2);}return list;}/** * 通过json字符串得到2级嵌套list * * @param <T> * @param strJson * @param beanClass * @return * @throws JSONException */public static <T> List<List<T>> get2ListByJsonString(String strJson,Class<T> beanClass) throws JSONException {Gson gson = new Gson();JSONArray ja1 = new JSONArray(strJson);List<List<T>> list = new ArrayList<List<T>>();for (int j = 0; j < ja1.length(); j++) {JSONArray ja2 = ja1.getJSONArray(j);List<T> list2 = new ArrayList<T>();for (int k = 0; k < ja2.length(); k++) {JSONObject jo = ja2.getJSONObject(k);T t = gson.fromJson(jo.toString(), beanClass);list2.add(t);}list.add(list2);}return list;}public static <T> Map<Object, Object> getMapByJsonString(String strJson,Class<T> beanClass) throws JSONException {Gson gson = new Gson();Map<Object, Object> map = null;JSONObject jo = new JSONObject(strJson);Iterator<String> it = jo.keys();while (it.hasNext()) {String key = (String) it.next();map.put(key, jo.get(key));}return map;}}
0 0
- JSON解析全面综合,实用篇
- JSON 全面解析
- Ajax综合应用大全(全面解析)
- javacc 定义自己的全文检索语言 综合全面解析
- Android之JSON全面解析与使用
- Android之JSON全面解析与使用
- 【Android学习】JSON与XML综合六种解析方式-综合案例
- Android之JSON全面深入解析与使用
- 一篇文章让你学会json和Gson---json全面详细解析
- 【Android学习】JSON与XML综合六种解析方式-综合案例(web项目源码+android源码+jar包)
- json数组小综合
- JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)
- JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)
- Android开发:JSON简介及最全面解析方法(Gson、AS自带org.json、Jackson解析)
- Android开发:JSON简介及最全面解析方法(Gson、AS自带org.json、Jackson解析)
- Android开发:JSON简介及最全面解析方法(Gson、AS自带org.json、Jackson解析)
- alibaba fastjson(json序列化器)序列化部分源码解析- Java综合
- alibaba fastjson(json序列化器)序列化部分源码解析- Java综合
- Tomcat内存溢出
- ios 创建图像缩略图
- maven plugins 教程
- java---线程内数据共享
- 总结:form中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- JSON解析全面综合,实用篇
- Servlet3的问题
- 实用模板
- double free *** set a breakpoint in malloc_error_break to debug
- SDL2.0版本变动后的一些改动
- 序列化
- iOS7 AVAudioRecorder不能录音
- Dynamic Performance Tables not accessible
- linux c编程system与exec等区别简介