gpt4 book ai didi

javascript - express 收到的 json 不是我发送的

转载 作者:行者123 更新时间:2023-12-03 07:19:22 26 4
gpt4 key购买 nike

我使用 request 将 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);

express

router.post('/purchaseAdd', function(req, res, next) {
var uploadData = req.body;
console.log(uploadData);
}

我不知道如何发布我想要的 json。

请帮帮我。(´・_・`)

我的 Express 版本是 v4

我的 Node 版本是v4.2.4

最佳答案

注意:

The json I send

一个JavaScript Object initializer不是 JSON,尽管它们的语法相似。

JSON 是一种用于表示结构化数据的文本格式。然而它不是代码。

<小时/>

如果您想发送以 JSON 形式编写的 JavaScript 对象,可以使用 request's json option :

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-encoded ,格式为 application/x-www-form-urlencoded:

// key1=value&key2=value&...    
commodityList%5B0%5D%5BcommodityName%5D=aaa&commodityList%5B0%5D%5BcommodityId%5D=2&...

关于javascript - express 收到的 json 不是我发送的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com