1.若发送数据Data是字符串或者数字时:
$.ajax({ url:\'/edit_student/\', type:\'POST\', data:Data, dataType:\'JSON\', //内部自动执行var dict = JSON.parse(arg); success:function (arg) { // arg是字符串 // JSON.parse将字符串转换成字典, json.loads if(arg.status){ window.location.reload(); //刷新页面 }else { alert(arg.message); } } })
2.如果发送数据Data是数组时:
$.ajax({ url:\'/edit_student/\', type:\'POST\', data:{\'k1\':[1,2,3,4]}, dataType:\'JSON\', //内部自动执行var dict = JSON.parse(arg); traditional: true, success:function (arg) { // arg是字符串 // JSON.parse将字符串转换成字典, json.loads if(arg.status){ window.location.reload(); //刷新页面 }else { alert(arg.message); } } }) 接收时应使用request.POST.getlist(\'k1\')
3.如果确实想要发送嵌套字典型的数据,只能考虑发送字符串型:
Data={‘m’:\'n\',}
$.ajax({
url:\'/edit_student/\',
type:\'POST\',
data:\'k1\': JSON.stringify(Data) },
dataType:\'JSON\', //内部自动执行var dict = JSON.parse(arg);
success:function (arg) {
// arg是字符串
// JSON.parse将字符串转换成字典, json.loads
if(arg.status){
window.location.reload(); //刷新页面
}else {
alert(arg.message);
}
}
})
接收后需要转成字典:json.loads()
5.直接获取form表单内信息形成字典Data数据:
a.循环each获取字典Data数据:
function Edit_stu_save() { $(\'#edit_stu_save\').click(function () { var Data={}; var nid = $(\'#editstu_id\').val(); $(\'#editModal\').find(\'input,select\').each(function () { //找到模态对话框中的所有输入选择标签,每一个都执行功能 var n=$(this).val(); //获取每一个标签的value var v=$(this).attr(\'name\'); //获取每一个标签的name属性 if (v==\'editgender\'){ if ($(this).prop(\'checked\')) { Data[v]=n; //[属性]=value } } else{ Data[v]=n; } });
b.一句话获取form表单字典Data数据: $(\'#fm\').serialize()
$.ajax({ url:\'/edit_student/\', type:\'POST\', data:$(\'#fm\').serialize(), dataType:\'JSON\', //内部自动执行var dict = JSON.parse(arg); success:function (arg) { // arg是字符串 // JSON.parse将字符串转换成字典, json.loads if(arg.status){ window.location.reload(); //刷新页面 }else { alert(arg.message); } } })
4.
Python序列化
字符串 = json.dumps(对象) 对象->字符串
对象 = json.loads(字符串) 字符串->对象
JavaScript:
字符串 = JSON.stringify(对象) 对象->字符串
对象 = JSON.parse(字符串) 字符串->对象
应用场景:
数据传输时,
发送:字符串
接收:字符串 -> 对象
事件委托:
$(\'要绑定标签的上级标签\').on(\'click\',\'要绑定的标签\',function(){})
$(\'要绑定标签的上级标签\').delegate(\'要绑定的标签\',\'click\',function(){})