JSON的String字符串与Java的List列表对象的相互转换

Posted 如若

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON的String字符串与Java的List列表对象的相互转换相关的知识,希望对你有一定的参考价值。

在前端:
1.如果json是List对象转换的,可以直接遍历json,读取数据。
2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:

var jsonStr = JSON.stringify(list); 
var param= {}; 
param.jsonStr=jsonStr; 
在后台:
1.把String转换为List(str转换为list) List<T> list = new ArrayList<T>(); JSONArray jsonArray = JSONArray.fromObject(str);//把String转换为json list = JSONArray.toList(jsonArray,t);//这里的t是Class<T> 在这里,因为得到json字符串的时候用的是 JSONArray.fromObject(collenction),所有,在讲json字符串转换成json对象的时候, 也只能用JSONArray.toCollection,并且,一定要带上后面的class参数。
2.把List转换为json JSONArray json = JSONArray.fromObject(object); String str = json.toString();//把json转换为String 再如: Teacher类中,有三个属性。 private String teaId; private String teaName; private List<Student> stus; Teacher teacher_1 = new Teacher("编号1", "教师1", stus); JSONObject obj = JSONObject.fromObject(teacher_1); 这一步,将Teacher 对象转换成json字符串的时候,没有任何的问题。下面,将JSONObject 转换成Teacher 对象,如果,不加后面的class参数,也会报这儿错误。加了后,这一步也正常。 Teacher teacherBean = (Teacher) JSONObject.toBean(obj, Teacher.class); Student studentBean = teacherBean.getStus().get(0); 当从teacherBean 对象中取出stus属性的值时候,就会提示: Java.lang.ClassCastException:net.sf.ezmorph.bean.MorphDynaBean cannot be cast to com.edu.xukai.Student 用这种方式可以解决: Map<String, Class> classMap = new HashMap<String, Class>(); classMap.put("stus", Student.class); Teacher teacherBean = (Teacher) JSONObject.toBean(obj, Teacher.class, classMap); 其中map对象是teacherBean对象中各个属性的类型,map额key是属性每次,value是属性的类型。 JSONArray.toArray(jsonArray, objectClass, classMap) JSONArray.toList(jsonArray, objectClass, classMap) 也支持这样的方式。

 

以上是关于JSON的String字符串与Java的List列表对象的相互转换的主要内容,如果未能解决你的问题,请参考以下文章

怎样将JAVA中得list集合转换为javascript的二维数组?

使用 java 8 流转换 List<Map<String,String>> 与“,”分隔的字符串值

在 Java 中将 JSON 转换为 List<List<String>>

java 中json.parsearray怎么将结果装换成list<map<string,string>>

java-com.alibaba.fastjson快速处理json字符串转成list类型

list中的数据怎么转换成字符串