android开发之Gson的使用
来源:互联网 发布:dnf辅助无限提卡端口 编辑:程序博客网 时间:2024/06/07 18:40
Gson是google提供的一个json的处理工具类库。
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)顶级的bean
public 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)顶级的bean
public 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());}
阅读全文
0 0
- android开发之Gson的使用
- Android应用开发之(Gson的使用)
- Android应用开发之(Gson的使用)
- android gson的使用
- android Gson的使用
- android Gson的使用
- Android Gson的使用
- [Android]Gson的使用
- android-gson的使用
- Android应用开发---GSON使用
- Google之gson的使用
- android 中Gson 的使用
- [Android 知识点] Gson的使用
- Android Gson的使用总结
- android开发之 Gson 解析json数组
- android开发笔记之Gson解析
- Android开发之Gson解析json数据
- Android之使用GSON解析JSON数据
- Netty学习(九)-Netty编解码技术之Marshalling
- 《软技能-代码之外的生存指南》————第一篇--职业
- 更改Anaconda下载源
- 字串的连接最长路径查找
- Dockerfile 常用指令
- android开发之Gson的使用
- POI对Excel单元格的格式的设置参数
- PAT_1060. Are They Equal
- C语言程序设计(17)
- TCP协议回顾
- 人脸特征点检测(一)
- CSS画图形
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
- WebAPI+NLog实现接口调用日志输出