前台js代码
$("#id").click(function(){
var question = {};
var one = 0;
var two = 0;
var three = 0;
var list = new Array();
if ($("input[name='answer']:checked").val()== "answerOne") {
one = 1;
} else if ($("input[name='answer']:checked").val()== "answerTwo"){
two = 1;
} else if ($("input[name='answer']:checked").val()== "answerThree"){
three = 1;
} else {
$.messager.alert("提示","请录入正确选项")
return;
}
list.push({"isright":one,"text":$("textarea[name='answerOne']").val()},{"isright":two,"text":$("textarea[name='answerTwo']").val()},{"isright":three,"text":$("textarea[name='answerThree']").val()});
question.text = $("input[name='text']").val();
//这里在传输到后台会出现解析不成json传的问题
question.listValue = list;
$.ajax({
url : 127.0.0.1:8080/question/post
data :question,
success:function(data){
}
});
});
后台代码
dto层
Question.java(部分代码)
public class Question{
private String text;
private List<AnswerList> answerList;
private String listValue;
public void setText(String text){
this.text = text;
}
public String getText(){
retrun text;
}
public void setAnswerList(List<AnswerList> answerList){
this.answerList= answerList;
}
public String getAnswerList(){
retrun answerList;
}
public String getListValue() {
return listValue;
}
public void setListValue(String listValue) {
this.listValue = listValue;
}
//前台传来的数据先用listValue接收,然后用该方法将json数组正确的赋值到answerList
public void JsonToAnswerList(){
this.answerList= JSONArray.parseArray(this.listValue,AnswerList.class);
}
}
AnswerList.java(部分代码)
public class AnswerList{
private Integer isRight;
private String text;
public void setIsRight( Integer isRight){
this.isRight= isRight;
}
public String getIsRight(){
retrun isRight;
}
public void setText(String text){
this.text = text;
}
public String getText(){
retrun text;
}
}
controller层
QuestionController.java(部分代码)
@RestController
@RequestMapping("question")
public class QuestionController{
@RequestionMapping("post")
public JsonResult<Question> addQuestion(Question question){
question.JsonToAnswerList;
...
}
}
util层
JsonResult.java
import java.io.Serializable;
public class JsonResult<T> implements Serializable {
private static final long serialVersionUID = -5877770676196277412L;
private int state;
private String msg;
private T data;
public JsonResult() {
}
public JsonResult(int state, String msg) {
this.state = state;
this.msg = msg;
}
public JsonResult(int state, String msg, T data) {
this.state = state;
this.msg = msg;
this.data = data;
}
public int getState() {
return state;
}
public JsonResult<T> setState(int state) {
this.state = state;
return this;
}
public String getMsg() {
return msg;
}
public JsonResult<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public T getData() {
return data;
}
public JsonResult<T> setData(T data) {
this.data = data;
return this;
}
}
ps:如有问题给指出一下