android开发之Gson的使用
2017-05-16 22:43
155 查看
Gson是google提供的一个json的处理工具类库。
(2)嵌套的bean
(2)嵌套的bean
1、引入包:
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken;//这个用于解析顶级为list的数据
2、基本的解析方法:顶级就是一个object,每个字段对应一个属性。嵌套的也是object(非list)。
<1>数据
{ "total": 1, "rows": { "ItemName": "test", "Price": "5.00", "SellerId": "1143910260", "ItemId": "2087883681", "ThumbImg": "test", "Remark": "", "CreateTime": "2017-04-28 15:50:13", "ModifyTime": "2017-05-16 12:02:33" }, "result_code": 0, "result_reason": "" }
<2>创建bean,包括顶级的和嵌套的都要
(1)顶级的beanpublic class ItemInfoResult { private int total; private ItemInfoRow rows; private int result_code; private String result_reason; public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public ItemInfoRow getRows() { return rows; } public void setRows(ItemInfoRow rows) { this.rows = rows; } public int getResult_code() { return result_code; } public void setResult_code(int result_code) { this.result_code = result_code; } public String getResult_reason() { return result_reason; } public void setResult_reason(String result_reason) { this.result_reason = result_reason; } }
(2)嵌套的bean
public class ItemInfoRow { private String ItemName; private String Price; private String SellerId; private String ItemId; private String ThumbImg; private String Remark; private String CreateTime; private String ModifyTime; public String getItemName() { return ItemName; } public void setItemName(String itemName) { ItemName = itemName; } public String getPrice() { return Price; } public void setPrice(String price) { Price = price; } public String getSellerId() { return SellerId; } public void setSellerId(String sellerId) { SellerId = sellerId; } public String getItemId() { return ItemId; } public void setItemId(String itemId) { ItemId = itemId; } public String getThumbImg() { return ThumbImg; } public void setThumbImg(String thumbImg) { ThumbImg = thumbImg; } public String getRemark() { return Remark; } public void setRemark(String remark) { Remark = remark; } public String getCreateTime() { return CreateTime; } public void setCreateTime(String createTime) { CreateTime = createTime; } public String getModifyTime() { return ModifyTime; } public void setModifyTime(String modifyTime) { ModifyTime = modifyTime; } }
<3>解析
Gson gson = new Gson(); ItemInfoResult result = gson.fromJson(response, ItemInfoResult.class); int resultCode = result.getResult_code(); if(resultCode == 0) { ItemInfoRow row = result.getRows();//注意这里可以直接返回嵌套的对象 }else { Log.v(Common.MSG_ZJAVA, "empty!"); }
3、顶级是一个object,嵌套是一个list。
<1>数据
{ "total": 7, "rows": [ { "ItemId": "2050832253", "ModifyTime": "2017-04-28 15:29:32" }, { "ItemId": "2043038028", "ModifyTime": "2017-03-13 19:57:19" }, { "ItemId": "2040248571", "ModifyTime": "2017-03-13 20:30:34" }, { "ItemId": "2040245627", "ModifyTime": "2017-03-13 20:03:01" }, { "ItemId": "2040244412", "ModifyTime": "2017-03-13 20:13:28" }, { "ItemId": "2040237405", "ModifyTime": "2017-03-13 20:27:16" }, { "ItemId": "2087883681", "ModifyTime": "2017-05-16 12:02:33" } ], "result_code": 0, "result_reason": "" }
<2>创建bean
(1)顶级的beanpublic class ItemTimeResult { private int total; private List<ItemTimeRow> rows; private int result_code; private String result_reason; public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public List<ItemTimeRow> getRows() { return rows; } public void setRows(List<ItemTimeRow> rows) { this.rows = rows; } public int getResult_code() { return result_code; } public void setResult_code(int result_code) { this.result_code = result_code; } public String getResult_reason() { return result_reason; } public void setResult_reason(String result_reason) { this.result_reason = result_reason; } }
(2)嵌套的bean
public class ItemTimeRow { private String ItemId; private String ModifyTime; public String getItemId() { return ItemId; } public void setItemId(String itemId) { ItemId = itemId; } public String getModifyTime() { return ModifyTime; } public void setModifyTime(String modifyTime) { ModifyTime = modifyTime; } }
<3>解析
Gson gson = new Gson(); ItemTimeResult result = gson.fromJson(response, ItemTimeResult.class); int resultCode = result.getResult_code(); if(resultCode == 0) { List<ItemTimeRow> list = result.getRows(); for(int i = 0;i < list.size();i++) { list.get(i).getItemId();//获取id } }else { Log.v(Common.MSG_ZJAVA, "test"); }
4、顶级就是一个list
<1>数据
[ { "item_id": "2040245627", "quantity": "1", "sku_id": "6336713128", "sku_title": "test", "item_name": "test" }, { "item_id": "2040245627", "quantity": "2", "sku_id": "6336713127", "sku_title": "test", "item_name": "test" } ]
<2>创建bean
注意,这个 顶级的bean为list,不需要创建,我们只要创建嵌套的bean。public class OrderRowItem { private String item_id; private int quantity; private String sku_id; private String sku_title; private String item_name; public String getItem_id() { return item_id; } public void setItem_id(String item_id) { this.item_id = item_id; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } public String getSku_id() { return sku_id; } public void setSku_id(String sku_id) { this.sku_id = sku_id; } public String getSku_title() { return sku_title; } public void setSku_title(String sku_title) { this.sku_title = sku_title; } public String getItem_name() { return item_name; } public void setItem_name(String item_name) { this.item_name = item_name; } }
<3>解析
List<OrderRowItem> orderItemList = gson.fromJson(items,new TypeToken<List<OrderRowItem>>(){}.getType()); for(int j = 0;j<orderItemList.size();j++) { OrderRowItem item = orderItemList.get(j); Log.v(Common.MSG_ZJAVA, "i="+i+",j="+j+",item_id="+item.getItem_id()+",item_name="+item.getItem_name()); }
相关文章推荐
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题
- 【Android开发经验】超好用的json解析工具——Gson项目使用详解
- 【Android开发经验】超好用的json解析工具——Gson项目使用详解
- Gson的详细使用(android必备,快速提高开发效率)
- 【Android】安卓开发之使用Gson和POST请求和服务器通信
- 一起来开发Android的天气软件(四)——使用Gson解析数据
- Gson的详细使用(android必备,快速提高开发效率)
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题
- android开发中使用Gson进行对象和Json之间的转换很方便
- 一起来开发Android的天气软件(四)——使用Gson解析数据
- Android开发学习之路-GSON使用心得(OCR图片识别)
- 【Android开发经验】超好用的json解析工具——Gson项目使用详解
- 使用Volley+OkHttp+Gson加速Android网络开发
- Android快速开发工具GsonFormat使用教程
- 【Android开发经验】比Gson解析速度快10倍!——Json解析神器Jackson使用介绍
- Android应用开发---GSON使用
- Android开发中使用Gson解析OkHttp传回来的复杂json数据
- 【Android 开发】: Android客户端与服务端之间使用GSON交互数据。
- Android应用开发之(Gson的使用)