android json的封装

来源:互联网 发布:linux ping 包大小 编辑:程序博客网 时间:2024/06/05 08:24

android json的封装

一、概述

经常有服务器需要封装上传json,之前做过一次后来用到又忘记了,这次就权当在这里做次笔记也供大家探讨
交流。包括对含有数组格式json的封装。

二、json格式

首先看一下要封装出来的json是什么样子,这里以我在项目中做的为例子:
“data”:{“total”:1800,”id”:”2”,”type”:”2”,
“items”:[{“name” :”电费”,”type”:”1”,”money”:”200”},
{“name”:”水费”,”type”:”1”,”money”:”200”},
{“name”:”床”,”type”:”1”,”money”:”200”}]}}

这里看到包含有数组。

三、封装

直接上代码:
包含数组的需要两个Bean,第一次封装的时候我觉得比较麻烦,所以没这么用,但是说到底这样的方式比较规范

public class CjsonBean {    public String total;    public String id;    public String type;    public List<Items> items;    public String getTotal() {        return total;    }    public void setTotal(String total) {        this.total = total;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public List<Items> getItems() {        return items;    }    public void setItems(List<Items> items) {        this.items =  items;    }}

把不是数组的建值都包含进去,注意这里最后的getItems()前面的是List,指的就是最后一个值items,然后再建立一个属于items的Bean:

public  class Items  {    public String name;    public String type;    public String money;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public String getMoney() {        return money;    }    public void setMoney(String money) {        this.money = money;    }

这样看应该是很清晰的,items这个数组里面的值都有在上面的Bean里面。

下面就是进行封装并以String的方式返回的代码,这里需要主要需要用到gson第三方包,有关这个应该很多人都有用过,不用我多说。下面代码也有详细的解析。

//封装json             private String postJson() {                 //json数据格式                 // "data":{"total":1800,"id":"2","type":"2","items":[{"name"                 // :"电费","type":"1","money":"200"},                 // {"name":"水费","type":"1","money":"200"},{"name":"押金                     //","type":"2","money":"2400"},{"name":"床","type":"1","money":"200"}]}}                 Gson gson = new Gson();                 //创建一个实例                         CjsonBean data = new CjsonBean();                 List<Items> items = new ArrayList<>();                 //逐一添加各项值                 data.setId(id);                 data.setTotal(total);                 data.setType(type1);                 //这里的itemsInfos.size()表示items这个数组的长度                 for (int i = 0; i < itemsInfos.size(); i++) {                     Items item = new Items();                     item.setMoney(itemsInfos.get(i).money);                     item.setType(itemsInfos.get(i).type);                     item.setName(itemsInfos.get(i).name);                     items.add(item);                 }                 data.setItems(items);                 //最后利用gson的toJson方法把data转换成json格式的数据                 String Jsonstr = gson.toJson(data);                 return Jsonstr ;             } 

这样对带有数组的json的封装就完成了,小弟也是初学者,还望有不同意见或者建议的留言大家一起探讨。

0 0
原创粉丝点击