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());}






原创粉丝点击