产生疑问的主要是这行代码
Map<String, Object> startParams = JSON.parseObject(JSON.toJSONString(ob),
new TypeReference<Map<String, Object>>() { });
里面涉及到三个方法,下面一个做解释:
1.JSON.toJSONSting();这个方法是将一个对象转化为一个json字符串
class person{
String name;
String id;
}
转化为
“person”:{name:“张三”,id:“10”}
**这插一嘴,JSON.同JSONString();如果对象的属性值为null那么,将生成的字符串将不会有对应的字段
2.JSON.parseObject()方法刚好相反,将json字符串转换为对象Object
3.下面就涉及到一个new TypeReference<Map<String, Object>>(),这里我的理解就是生成对应的的对象,回到最初的疑问代码:
Map<String, Object> startParams = JSON.parseObject(JSON.toJSONString(ob),
new TypeReference<Map<String, Object>>() { });
其实这是一个转过来又转回去的过程,因为json字符串和json对象都是键值对的形式,所以也可以通过map的形式来储存。方便在aciviti的使用过程中以map的形式进行传参。