应用场景: 在前端有个ajax请求到后端后,需要返回多个变量的值,在这里使用的是Json格式作为值传递,使用eval函数来解析Json格式。
要传递的值data:
var data = " {"key1":"value1","key2":"value2","key3":"value3"} ";
解析的结果:
var json = eval("(" + data+ ")");
var value1 = json.key1;
var value2 = json.key2;
var value3 = json.key3;
具体在ajax中的应用如下,接收返回的多个值
function save() { if($("#saleOrderForm").valid()){
var dform = $("#saleOrderForm").serialize();
$.post(ctx + "/saleOrder/orderSave", dform, function(data){
var json = eval("(" + data + ")"); var result = json.result; var id = json.id; var soStatus = json.soStatus; if (result == "success") { //jAlert('message', '操作成功.', '提示'); closeWindow('popupWin'); //如果状态由打开修改为关闭,则不跳转到明细栏目 if(soStatus == 1) { window.location.href=ctx+'/saleOrder/show'; } else { window.location.href=ctx+'/saleOrderDetail/saleOrderDetailView?id=' + id; } } else { jAlert('message', result,'<facc:i18n value="系统提示" key="JSPCOMMON-sys_aerlt" />'); } }, "html"); } }
以下是后端拼接Json格式的字符串:
注意Json格式在java中时如果要输出的内容带双引号,需要使用转义字符/
result = "{"result":"success","id":"" + id
+ "","soStatus":"" +saleOrder.getSoStatus()+""}";