快递邮件接收json不是我发送的
express post receive json isn`t I send
我使用请求将json数据发送到我的express服务器。
但是express接收数据不是我的json。
我将显示有关此问题的代码。
我发送的json
{
'commodityList': [
{
'commodityName': 'aaa',
'commodityId': '2',
'commodityPrice': 128,
'commodityNumber': 2
},
{
'commodityName': '',
'commodityId': '1',
'commodityPrice': 59,
'commodityNumber': 10
}
],
'purchasePrice': 846,
'userId': '1'
}
我收到的json
{ 'commodityList[0][commodityName]': 'aaa',
'commodityList[0][commodityId]': '2',
'commodityList[0][commodityPrice]': '128',
'commodityList[0][commodityNumber]': '2',
'commodityList[1][commodityName]': 'bbb',
'commodityList[1][commodityId]': '1',
'commodityList[1][commodityPrice]': '59',
'commodityList[1][commodityNumber]': '10',
purchasePrice: '846',
userId: '1' }
守则
请求
var request = require('request');
var options = {
url: 'http://localhost:3000/commodityManage/purchaseAdd',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
form: {
'commodityList': [
{
'commodityName': 'aaa',
'commodityId': '2',
'commodityPrice': 128,
'commodityNumber': 2
},
{
'commodityName': 'bbb',
'commodityId': '1',
'commodityPrice': 59,
'commodityNumber': 10
}
],
'purchasePrice': 846,
'userId': '1'
}
};
console.log(options.form.commodityList);
console.log(options.form.commodityList.length);
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
console.log("info:", info);
}
}
request.post(options, callback);
快递
router.post('/purchaseAdd', function(req, res, next) {
var uploadData = req.body;
console.log(uploadData);
}
我不知道如何发布我想要的json。
请帮帮我。(´・_・`)
我的快递版本是v4
我的节点版本是v4.2.4
注意:
我发送的json
JavaScript对象初始值设定项不是JSON,尽管它们在语法上有相似之处。
JSON是一种用于表示结构化数据的文本格式。然而,它不是代码。
如果您想发送一个写为JSON的JavaScript对象,可以使用request
的json
选项:
var options = {
url: 'http://localhost:3000/commodityManage/purchaseAdd',
headers: {
// ...
},
json: { // <----
'commodityList': [
{
'commodityName': 'aaa',
'commodityId': '2',
'commodityPrice': 128,
'commodityNumber': 2
},
{
'commodityName': 'bbb',
'commodityId': '1',
'commodityPrice': 59,
'commodityNumber': 10
}
],
'purchasePrice': 846,
'userId': '1'
}
};
这将把对象中的数据写为:
{"commodityList":[{"commodityName":"aaa","commodityId":"2",...
通过使用form
选项,对象被序列化为URL编码,格式化为application/x-www-form-urlencoded
:
// key1=value&key2=value&...
commodityList%5B0%5D%5BcommodityName%5D=aaa&commodityList%5B0%5D%5BcommodityId%5D=2&...
您接收的json就是正在发送的json。它只是以不同的格式显示。
为了证明它,试着做这样的事情:
router.post('/purchaseAdd', function(req, res, next) {
//this will transform the object to a string so you can see all the keys/values
var uploadData = JSON.stringify(req.body);
console.log(uploadData);
}
我将app.js中的bodyParser设置为true
像这个
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: 'lmb'}));
app.use(bodyParser.urlencoded({ extended: true}));
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- AngularJS-在JSON选择器中使用变量名
- 快递邮件接收json不是我发送的