kotlin写法
val toJson = gson.toJson(mList)
val array: PayBean? = gson.fromJson(toJson, PayBean::class.java)
val newList: MutableList<PayBean?> = Arrays.asList(array)
java写法
String toJson = gson.toJson(mList);
T[] array = gson.fromJson(toJson , PayBean.class);
List<PayBean> newList = Arrays.asList(array);
如果传输的Json串为以下格式
{"code":0","contain":"kkkk","data":[{"id":1,"useraccount":"1",''question":"1","reply":"1"}]}
可创建一个通用类Message<T>,用于
开发中遇到的复杂JSON,用TypeToken来进行处理:(当然还有第二种解析方式,请查看http://blog.csdn.net/jason_996/article/details/78039799)
处理方法:
1,先将接口返回的JSON,用gson.tojson(map)方法,将LinkedTreeMap对象转成String。
2,再通过gson.fromjson(string,type)方法,将String转成LinkedTreeMap。用到了Type type=new TypeToken(){}.getType;
3,再将LinkedTreeMapf进行遍历
前提:后端同志在response中返回多种类型,
失败时返回String,成功时返回数据实体用于前端显示。都是用Data字段接收:
public class RootBean<T> {
private int StatusCode;
private T Data;
一、寻找原因
一开始想的很好办嘛,成功时将存有json数据的data转换成实体类就好啦:
new Gson().formJson(jsonString,实体类.class)
不料接收的data是
public static <T> List<T> getList(List<T> mList, Class<T[]> aClass){
Gson gson = new Gson();
String toJson = gson.toJson(mList);
T[] array = gson.fromJson(toJson , (Type) aClass);
List<T> newL..
07、集合之TreeMap和LinkedHashMap
TreeMap
TreeMap的底层数据接口是红黑树,由于红黑树的左小右大的特性,所以TreeMap中的元素会自动根据key进行排序,在初始化TreeMap时,可以传自定义的排序器comparator,如果没有传排序器会默认使用key的compareTo()方法进行比较。因为底层使用的时红黑树,所以TreeMap的get()、put()、remove()方法的时间复杂度都是O(log(n))。
排序的两种方式
实现comparable接口,通过com
微服务中从其他服务获取过来的对象,本来传的是实体类对象 , 但是接受到的参数却是linkedhashMap类型的对象 , 如果强转成自定义的实体类型会报错,因此可以利用ObjectMapper转换。
ObjectMapper mapper = new ObjectMapper();
DefaultResponse defaultResponse = proxy.getData();
List<Resource> resources = (<Resource>) defaultResp
Kotlin基础——Map集合详解一、声明和创建Map集合二、使用Map的方法三、遍历Map四种方式四、可变的Map
Kotlin的Map集合用于保存key-value对,其也被分为可变的和不可变的。
一、声明和创建Map集合
Kotlin提供了如下函数来创建Map集合:
mapOf():该函数返回不可变的Map集合。该函数可接受0个或多个key-value对,这些key-value对将作为Ma...