fastjson 嵌套对象,泛型的再次处理
2015-04-07 21:40
771 查看
由于google无法方便的进行list 泛型转换,采用fastjson就简单多了。
如:
String s = "[{\"id\":1,\"name\":\"李坤\"},{\"id\":2,\"name\":\"曹贵生\"},{\"id\":3,\"name\":\"柳波\"}]";
List<Student> personList = JSON.parseArray(s, Student.class);
一句搞定,超快捷有没有 :)
这是简单的list返回对象处理,如果返回是分页信息,包括主体信息:List对象,分页附属信息:总页数、当前页等,就需要再处理下:
//返回String结果,包括主体信息List(List可以是用户表、新闻等其他bean,这就是泛型的好处),以及分页附属信息
String s= "{\"currentPageCount\":12,\"last\":false,\"list\":[{\"birthday\":\"1981-2-1\",\"deptnames\":\"信息部\",\"email\":\"333@qq.com\",\"mobile\":\"18011111111\",\"names\":\"sam xie\",\"username\":\"admins\"},{\"$ref\":\"$.list[0]\"}],\"pageNumber\":2,\"pageSize\":12}"; //{\"$ref\":\"$.list[0]\"}指向list[0],重复,直接使用引用。
//下面直接两行就搞定分页对象、list对象
Page<User> page = FastJsonTools.getPage(s, User.class);
List<User> users = page.getList();
//关键来了,如何工具类取page
public class FastJsonTools {
public static <T> Page<T> getPage(String jsonString, Class<T> clz) {
try {
Page<T> page = JSON.parseObject(jsonString,
new TypeReference<Page<T>>() {
});
//泛型类型调用paseObject的时候,使用parseObject可以转换Class,
// 但是后边传TypeReference或者Type就解析不出泛型类型了,需要再转换一次
List<T> list = JSONArray.parseArray(page.getList().toString(), clz);
page.setList(list);
return page;
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
}
//哦了,如有更好的方法,希望不吝赐教。
//另网络交互可以使用volley,比Asynctask简洁很多。推荐看下相声:满腹经纶 20分钟完整版,压力之余,轻松一下 :)
如:
String s = "[{\"id\":1,\"name\":\"李坤\"},{\"id\":2,\"name\":\"曹贵生\"},{\"id\":3,\"name\":\"柳波\"}]";
List<Student> personList = JSON.parseArray(s, Student.class);
一句搞定,超快捷有没有 :)
这是简单的list返回对象处理,如果返回是分页信息,包括主体信息:List对象,分页附属信息:总页数、当前页等,就需要再处理下:
//返回String结果,包括主体信息List(List可以是用户表、新闻等其他bean,这就是泛型的好处),以及分页附属信息
String s= "{\"currentPageCount\":12,\"last\":false,\"list\":[{\"birthday\":\"1981-2-1\",\"deptnames\":\"信息部\",\"email\":\"333@qq.com\",\"mobile\":\"18011111111\",\"names\":\"sam xie\",\"username\":\"admins\"},{\"$ref\":\"$.list[0]\"}],\"pageNumber\":2,\"pageSize\":12}"; //{\"$ref\":\"$.list[0]\"}指向list[0],重复,直接使用引用。
//下面直接两行就搞定分页对象、list对象
Page<User> page = FastJsonTools.getPage(s, User.class);
List<User> users = page.getList();
//关键来了,如何工具类取page
public class FastJsonTools {
public static <T> Page<T> getPage(String jsonString, Class<T> clz) {
try {
Page<T> page = JSON.parseObject(jsonString,
new TypeReference<Page<T>>() {
});
//泛型类型调用paseObject的时候,使用parseObject可以转换Class,
// 但是后边传TypeReference或者Type就解析不出泛型类型了,需要再转换一次
List<T> list = JSONArray.parseArray(page.getList().toString(), clz);
page.setList(list);
return page;
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
}
//哦了,如有更好的方法,希望不吝赐教。
//另网络交互可以使用volley,比Asynctask简洁很多。推荐看下相声:满腹经纶 20分钟完整版,压力之余,轻松一下 :)
相关文章推荐
- FastJson将json解析成含有泛型对象,内部泛型对象再次解析出错的解决办法(Android)
- 关于FastJson的一些问题的处理(时间问题 ,转换json重用对象引用问)
- fastjson和gson反序列化时的嵌套集合和抽象类处理
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- fastjson 处理null值,对象为null时返回{},数字为null返回[]
- fastjson-1.2.21 使用实例,复杂嵌套Java对象转json对象,复杂嵌套json对象转对应Java对象的代码实现
- fastjson(七)处理超大对象和超大JSON文本
- fastjson 处理json字符串嵌套结构
- fastjson解析嵌套泛型
- fastJosn 转换对象为json格式字符串时, 空字段处理.
- 【第17篇】通过fastjson去操作对象数据并处理json数据
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- fastJson在bean中加入@JsonProperty转换出的对象中依然有字段为null的处理
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- C#处理Json字符串、Json对象、多层嵌套
- FastJson处理Map List 对象
- 通过FastJson把字符串转换成JSON和Map和List对象处理json数据
- FastJSON 转换List<T> ,Map<T,T>泛型失败 处理方法
- fastJson怎么统一处理泛型数据