前台传json对象中含有数组,传到后台无法正常解析对象中的数组对象问题

前台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:如有问题给指出一下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值