杂记--泛型与json解析(fastjson)

在实际开发中,往往需要从服务器获取json数据,然后进行相应 解析,为了使代码与逻辑更加简洁“完美”,我们需要对解析过程进行一些小的处理;


在次以fastjson为例,收到的字符串格式如下

json常为如下格式

String str={"status":"1","errMsg":"查询成功","data":[{"typeaddtime":"2015-09-09T11:56:11","typeid":1,"typeimages":"http:\/\/192.168.0.188:8080\/msx\/images\/msx.jpg","typename":"蔬菜","typesequence":1,"typesimple":"http:\/\/192.168.0.188:8080\/msx\/images\/msx.jpg","typestate":"1"}]}
在返回的json中,通常都存在status与errMsg,之后的data才是主要的内容。

1、创建基类以,其拥有所有返回json数据的共同属性:

status表示状态,errMsg表示错误或正确信息,使用泛型集合存储真正的数据。

public class BaseBean implements Serializable{
	private int status;
	private String errMsg;
	private List data;
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	public String getErrMsg() {
		return errMsg;
	}
	public void setErrMsg(String errMsg) {
		this.errMsg = errMsg;
	}
	public List getData() {
		return data;
	}
	public void setData(List data) {
		this.data = data;
	}
}
2、创建相应的实体类

public class CategoryBean {
	private String typeaddtime;
	private String typeimages;
	private String typename;
	...省略set/get
}
3、fastjson解析获取数据
BaseBean cat=JSON.parseObject(str, new TypeReference>(){});	
List list= cat.getData();											

通过改变泛型类型,在cat中已获得相应的实体类信息,之后通过get获取所需要的信息。

若有更好的方式,欢迎分享。



你可能感兴趣的:(泛型,json,android)