Ajax传json对象
定制小程序开发相信很多小伙伴想要通过Ajax传输json定制小程序开发数据给后端,本来直接发送一个data: JSON.stringify(obj)
就可以了,但是发现后端的请求参数中有一个参数需要int类型,这个时候就需要用到对象了。
封装对象
首先得到数据并封装对象
(我用的是jQuery)
obj = { "number": obj.number, "password": obj.password, "name": obj.name, "identity": obj.identity, "major": obj.major, "unit": obj.unit, "gender": obj.gender, "age": parseInt(obj.age), "id_number": obj.id_number };
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
可以看出这些数据里面只有“age”的value值被转换了,这个例子就是后端要求的请求参数中“age”的值是int类型
后端的小伙伴给我的api文档中他的要求是这样的
请求方法:POST
参数格式:json
请求参数:
{“number”:“2019081503”,“password”:“123456789”,“name”:“玛丽”,“identity”:“学生”,“major”:“计算机科学与技术”,“unit”:“计科195”,“gender”:“女”,“age”:23,“id_number”:“3600002”}
所以如果我直接data: JSON.stringify(obj)
的话我发送过去的参数就成了
{“number”:“2019081503”,“password”:“123456789”,“name”:“玛丽”,“identity”:“学生”,“major”:“计算机科学与技术”,“unit”:“计科195”,“gender”:“女”,“age”:“23”,“id_number”:“3600002”}
这样就不能获得正确的返回参数
那么这个时候就需要封装对象然后在将对象给JSON.stringify()一下就好了
看代码
form.on('submit(saveBtn)', function (obj) { obj = obj.field; obj = { "number": obj.number, "password": obj.password, "name": obj.name, "identity": obj.identity, "major": obj.major, "unit": obj.unit, "gender": obj.gender, "age": parseInt(obj.age), "id_number": obj.id_number }; console.log("看看对象"); console.log(obj); console.log("看看JSON.stringify(obj)"); console.log(JSON.stringify(obj)); $.ajax({ type: "POST", contentType: 'application/json', url: "你的url", data: JSON.stringify(obj), dataType: 'json', success: function (data) { console.log("成功"); console.log(data); layer.alert('添加成功'); } }); return false; });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31