如何在发出 api 请求时以 JSON 格式将对象数组传递到有效负载中
How to pass an array of object into a payload in a JSON format while making a api request
我有一组这样的对象。
var arr = [
{name: 'myName', age: 25, city: 'myCity'},
{name: 'myName1', age: 25, city: 'myCity1'}
];
现在,我需要将此 arr 数组作为 JSON 对象传递到负载中。
我用的是JSON.stringify(arr)
然后传数据。但它正在转换为表单数据,有效负载格式如下所示;
[{name: 'myName', age: 25, city: 'myCity'},{name: 'myName1', age: 25, city: 'myCity1'}]:
如果您注意到负载末尾有一个冒号,它似乎将我的数组作为 属性 名称转换为表单数据。你能帮我把数组作为 JSON 对象传递吗?
用于调用API方法的代码是,
{
type: 'POST',
method: 'POST',
dataType: 'json',
url: 'url of the api call',
beforeSend: function(header, settingsData){
Object.keys(settingsData.options).forEach(headerKey){
headerKey.setHeader(headerKey, settingsData.options[headerKey]);
}
return settingsData;
},
disableDefaultError: true
}
was half correct.
- 保持
dataType: 'json'
- 添加
contentType: 'application/json'
因为默认值为 'application/x-www-form-urlencoded; charset=UTF-8'
{
type: 'POST',
method: 'POST',
dataType: 'json',
contentType: 'application/json', // <- this is needed
url: 'url of the api call',
beforeSend: function(header, settingsData){
Object.keys(settingsData.options).forEach(headerKey){
headerKey.setHeader(headerKey, settingsData.options[headerKey]);
}
return settingsData;
},
disableDefaultError: true
}
我有一组这样的对象。
var arr = [
{name: 'myName', age: 25, city: 'myCity'},
{name: 'myName1', age: 25, city: 'myCity1'}
];
现在,我需要将此 arr 数组作为 JSON 对象传递到负载中。
我用的是JSON.stringify(arr)
然后传数据。但它正在转换为表单数据,有效负载格式如下所示;
[{name: 'myName', age: 25, city: 'myCity'},{name: 'myName1', age: 25, city: 'myCity1'}]:
如果您注意到负载末尾有一个冒号,它似乎将我的数组作为 属性 名称转换为表单数据。你能帮我把数组作为 JSON 对象传递吗?
用于调用API方法的代码是,
{
type: 'POST',
method: 'POST',
dataType: 'json',
url: 'url of the api call',
beforeSend: function(header, settingsData){
Object.keys(settingsData.options).forEach(headerKey){
headerKey.setHeader(headerKey, settingsData.options[headerKey]);
}
return settingsData;
},
disableDefaultError: true
}
- 保持
dataType: 'json'
- 添加
contentType: 'application/json'
因为默认值为'application/x-www-form-urlencoded; charset=UTF-8'
{
type: 'POST',
method: 'POST',
dataType: 'json',
contentType: 'application/json', // <- this is needed
url: 'url of the api call',
beforeSend: function(header, settingsData){
Object.keys(settingsData.options).forEach(headerKey){
headerKey.setHeader(headerKey, settingsData.options[headerKey]);
}
return settingsData;
},
disableDefaultError: true
}