利用Gson快捷解析Json数据
2015-03-23 14:51
211 查看
与服务器交互获取数据,Json格式是比较普遍和简单的一种形式,下面就来利用Gson来快捷的解析数据:
1):在android项目libs文件夹下导入json-jar.jar(详细导包不再啰嗦)
2):封装工具类JsonUtil.java
3):使用实例:
一.解析成object对象
a》Json数据:json
b》封装实体类:UserBean.java与Json数据字段一致
c》解析数据:
UserBean userBean=JsonUtil.fromJson(json.toString,UserBean.class);
d》填充数据:
tv.setText(userBean.user_name);等等
二..解析成List
b》解析数据:
c》填充数据:
4):复杂数据的解析
a》Json嵌套的数据,json
b》:只需把实体类封装成:
c》解析数据:
这种解析的方式比传统的解析方便简洁:
总结步骤:
1.把获取的Json数据转化为String类型
2.封装实体类(所有用到的字段和Json中字段一致)
3.调用工具类,解析数据
4.填充数据到界面
demo 实例稍候上传………
1):在android项目libs文件夹下导入json-jar.jar(详细导包不再啰嗦)
2):封装工具类JsonUtil.java
package com.xingfu.util; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; /** * © 2015 * 名称:JsonUtil.java * 描述:json处理类. * * @author 孤狼 * @version v1.0 * @date:2015-01-17 下午01:52:13 * */ public class JsonUtil { /** * * 描述:将对象转化为json. * @param list * @return */ public static String toJson(Object src) { String json = null; try { GsonBuilder gsonb = new GsonBuilder(); Gson gson = gsonb.create(); json = gson.toJson(src); } catch (Exception e) { e.printStackTrace(); } return json; } /** * * 描述:将列表转化为json. * @param list * @return */ public static String toJson(List<?> list) { String json = null; try { GsonBuilder gsonb = new GsonBuilder(); Gson gson = gsonb.create(); json = gson.toJson(list); } catch (Exception e) { e.printStackTrace(); } return json; } /** * * 描述:将json转化为列表. * @param json * @param typeToken new TypeToken<ArrayList<?>>() {}; * @return */ public static List<?> fromJson(String json,TypeToken typeToken) { List<?> list = null; try { GsonBuilder gsonb = new GsonBuilder(); Gson gson = gsonb.create(); Type type = typeToken.getType(); list = gson.fromJson(json,type); } catch (Exception e) { e.printStackTrace(); } return list; } /** * * 描述:将json转化为对象. * @param json * @param clazz * @return */ public static Object fromJson(String json,Class clazz) { Object obj = null; try { GsonBuilder gsonb = new GsonBuilder(); Gson gson = gsonb.create(); obj = gson.fromJson(json,clazz); } catch (Exception e) { e.printStackTrace(); } return obj; } }
3):使用实例:
一.解析成object对象
a》Json数据:json
{ "user_id": 520, "user_name": "幸福", "user_age": 21, "user_logo": "http://www.xingfu.com//5456sdgdf5544.jpg", "user_class": "一(三)班", "user_school": "中国社会科学院" }
b》封装实体类:UserBean.java与Json数据字段一致
public class UserBran { public int user_id; public String user_name; public int user_age; public String user_logo; public String user_class; public String user_school; }
c》解析数据:
UserBean userBean=JsonUtil.fromJson(json.toString,UserBean.class);
d》填充数据:
tv.setText(userBean.user_name);等等
二..解析成List
[{ "user_id": 520, "user_name": "幸福", "user_age": 21, "user_logo": "http://www.xingfu.com//5456sdgdf5544.jpg", "user_class": "一(三)班", "user_school": "中国社会科学院" },
{
"user_id": 220,
"user_name": "幸运",
"user_age": 25,
"user_logo": "http://www.xingfu.com//gdfgdgsdgdf5544.jpg",
"user_class": "一(二)班",
"user_school": "中国社会科学院"
},{
"user_id": 440,
"user_name": "天真",
"user_age": 41,
"user_logo": "http://www.xingfu.com//fg56sdgdf5544.jpg",
"user_class": "一(四)班",
"user_school": "中国社会科学院"
}]
b》解析数据:
TypeToken typeToken=new TypeToken<ArrayList<UserBean>>() {}; ArrayList<UserBean> list=JsonUtil.fromJson(json.toString,typeToken);
c》填充数据:
listView.setAdapter(new CommunAdapter(this,list));等等
4):复杂数据的解析
a》Json嵌套的数据,json
{ "user_id": 520, "user_name": "幸福", "user_age": 21, "user_logo": "http://www.xingfu.com//5456sdgdf5544.jpg", "user_class": "一(三)班", "user_school": "中国社会科学院", "data": { "number": 200, "love_gril": "丽丽" } }
b》:只需把实体类封装成:
public class UserBran { public int user_id; public String user_name; public int user_age; public String user_logo; public String user_class; public String user_school; public MoreData data; public class MoreData { public int number; public String love_gril; } }
c》解析数据:
UserBean userBean=JsonUtil.fromJson(json.toString,UserBean.class);
这种解析的方式比传统的解析方便简洁:
总结步骤:
1.把获取的Json数据转化为String类型
2.封装实体类(所有用到的字段和Json中字段一致)
3.调用工具类,解析数据
4.填充数据到界面
demo 实例稍候上传………
相关文章推荐
- Android利用Gson解析Json数据
- JSON解析类库之Gson(7) --- Gson与SpringMVC的整合,利用@ResponseBody返回Json数据
- 利用gson解析和生成json数据(二)
- 利用Gson解析多层嵌套的JSON数据
- 利用Gson解析Json数据的一些知识储备
- 【android】利用volley+Gson POST json请求来接收jsonObject并解析json数据
- 利用gson解析和生成json数据(一)
- JSON数据解析(GSON方式)
- Android中使用Gson解析JSON数据
- Gson解析(List和Map)格式json数据
- Android之Gson解析JSON数据
- JSON文档解析 Google提供的GSON的jar包,利用JSONReader方法
- Android利用Gson解析嵌套多层的Json
- Android中使用Gson解析JSON数据
- Gson解析json数据
- 前台利用javascript解析Json数据,生成编码折线
- Android中使用Gson解析JSON数据
- 客户端与服务器通过gson解析json数据
- 数据格式利用GSON接卸JSON数据
- Gson解析Json数据