JSONObject的功能很强大,既能将字符串转换成Map对象,也能转换成简单实体类,还能转复杂的map和实体类。
下面就把转复杂map和实体类的用发和大家分享一下,好了,废话不多说,下面就把我在工作中遇到的转json字符串的代码和大家分享一下。
1.json字符串转复杂Map
所谓的复杂Map是指嵌套很多层的map
String jsonStr = "这是一个很复杂的json字符串";//目标字符串
Map<String,Class> classMap = new HashMap<String,Class>;
classMap.put("jsonKey",Map.class);//定义该map的目的是将最终转化成mao的键定义为jsonKey
JSONObject jsonObj = JSONObject.fromObject(jsonStr );
Map<String,Object> resultMap = (Map<String,Object>)JSONObjec.toBean(jsonObj , Map.class, classMap );
resultMap就是我们想要的结果了。
2.json字符串转复杂实体类
复杂实体类是指嵌套很多层的实体对象,比如我定义了一个User实体类,在User实体类里除了定义了一些参数外,又定义了Manager实体类对象
那么我们希望转json的时候,不仅将User对象自动赋值,还要给Manager对象赋值
String jsonStr = "这是一个很复杂的json字符串";//目标字符串
Map<String,Class> classMap = new HashMap<String,Class>;
classMap.put("manager",Manager.class);//定义Manager对象的目的是将User对象里面的Manager对象也赋值
JSONObject jsonObj = JSONObject.fromObject(jsonStr );
Object result = JSONObjec.toBean(jsonObj , Map.class, classMap );
result就是我们想要的结果了。