用fastjson 结局了 gson 泛型 类型 对应的不上的问题。。
解析 json一直用gson
突然出现了这个问题
类是这样的 很简单 但每个类都没有关联性
这样写代码太垃圾了。。复用性在哪里。。
所以打算用一个通用的方法 ,网上查 自己写 出现啦这三种方法
public static <T> List<T> getList(String jsonString, Class<T> cls) { List<T> list = new ArrayList<T>(); try { Gson gson = new Gson(); if (jsonString != null && jsonString.length() > 0) { list.add((T) gson.fromJson(jsonString, new TypeToken<List<T>>() { }.getType())); } } catch (Exception e) { } return list; } public static <T> T getPerson(String jsonString, Class<T> cls) { T t = null; try { Gson gson = new Gson(); t = gson.fromJson(jsonString, cls); } catch (Exception e) { // TODO: handle exception } return t; } public static <T> List<T> getListType(Class<T> clazz, String json) { Type type = new TypeToken<List<T>>() { }.getType(); Gson gson = new Gson(); List<T> list = gson.fromJson(json, type); return list; }
主函数调用方法是这样的
List<PlayItem> l = Gsons.getList(json, PlayItem.class); System.out.println("l.getsize:" + l.size()); System.out.println("l.getname" + l.get(0).getChannelName());可以确定json是完全没问题的。。完全可用。
报错如下
可见 是 得到了这个数组 但是 对应关系 有问题。。一直不知道怎么解决 有大神看到 请帮我解决一下
下面是 fastjson解决了这个问题
http://download.csdn.net/detail/wanghao200906/8262245地址
只用这一句代码就可以了
List<PlayItem> plist = JSON.parseArray(json, PlayItem.class);
当然了那个gson泛型解析的问题 依然没有解决 希望有知道的告诉我
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。