在前端:
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>
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<answer> toanswerlist(string[] studenanswers, int[] question_ids,
int[] types,int[] scores) {
list<answer> answerlist = new arraylist<answer>();
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<answer> converanswerformstring(string answer){
if (answer == null || answer.equals(""))
return new arraylist();
jsonarray jsonarray = jsonarray.fromobject(answer);
list<answer> 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();
}
更多json的string字符串与java的list列表对象的相互转换。