string转list对象数组 java_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 list = new ArrayList();

JSONArray jsonArray = JSONArray.fromObject(str);//把String转换为json

list = JSONArray.toList(jsonArray,t);//这里的t是Class

在这里,因为得到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 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 classMap = new HashMap();

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)

也支持这样的方式。

时间: 08-15

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页