在前端: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
2.把List转换为json
JSONArray json = JSONArray.fromObject(object);
String str = json.toString();//把json转换为String
eg:1. 根据页面用户输入的信息形成 Answer 对象的List
/**
* @param answers
* @param question_ids
* @param types
* @return
*/
private List toAnswerList(String[] studenAnswers, int[] question_ids,
int[] types,int[] scores) {
List answerList = new ArrayList();
if(studenAnswers!=null && question_ids!= null && types!= null&& scores!= null){
for (int i = 0; i < studenAnswers.length; i++) {
Answer answer = new Answer();
String studenAnswer = studenAnswers[i];
int type = types[i];
int question_id = question_ids[i];
int score = scores[i];
answer.setQuestion_id(question_id);
answer.setScore(score);
answer.setStudenAnswer(studenAnswer);
answer.setType(type);
answerList.add(answer);
}
}
return answerList;
}
/**
* 将一个json字串转为list
* @param props
* @return
*/
public static List converAnswerFormString(String answer){
if (answer == null || answer.equals(""))
return new ArrayList();
JSONArray jsonArray = JSONArray.fromObject(answer);
List list = (List) JSONArray.toCollection(jsonArray,
Answer.class);
return list;
}
2. 将一个 Answer 对象的List 生成Json字串,是根据客户端页面用户输入的信息生成的
public String getAnswerString(String[] studenAnswers, int[] question_ids,
int[] types,int[] scores) {
List list = toAnswerList(studenAnswers, question_ids,
types, scores);
JSONArray jsonarray = JSONArray.fromObject(list);
return jsonarray.toString();
}
PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用: