[英]how to convert array api response to json in JavaScript
我有一个 api,它返回这样结构的数据:
//代码返回 response.status(200).json(startdate)
结果数据:
[
"2020-01-16",
"2020-01-18",
]
我希望这个 api 返回这样的结果:
Code: 200
Content:
{
"availableDates": [
"2017-11-24",
"2017-11-27"
],
"status": "SUCCESS",
"message": ""
}
这是我将数据作为数组获取的完整代码
app.get('/api/getBusyDays',(request, response) =>{
odoo.connect(function (err) {
console.log(' OdooStartDate' + dateTimeStartUsed + 'OdooStopdate' + dateTimeEndUsed);
var params1 = [];
params1.push(inParams1);
console.log(' search params '+ JSON.stringify(params1));
odoo.execute_kw('calendar.event', 'search_read', params1, function (err, value) {
if (err) { return console.log(err) }
if(value) {
if (value.length > 0) {
value.forEach(function(a) {
a.start_datetime = moment(a.start_datetime).format('YYYY-MM-DD');
a.stop_datetime = moment(a.stop_datetime).format('YYYY-MM-DD');
});
const startdate = [...new Set(value.map(val => val.start_datetime))];
startdate.sort();
// return response.status(200).json( value)
return response.status(200).json(startdate)
}
}
你可以像这样创建一个对象:
let arrVal = [ "2017-11-24", "2017-11-27" ]; // return Object or your framework (Express or KOA or) response Object console.log({ "Code": 200, "Content": { "availableDates": arrVal, "status": "SUCCESS", "message": "" } })
更新:
根据对此答案的评论,修改您的回复,使其看起来像这样:
app.get('/api/getBusyDays',(request, response) =>{
odoo.connect(function (err) {
console.log(' OdooStartDate' + dateTimeStartUsed + 'OdooStopdate' + dateTimeEndUsed);
var params1 = [];
params1.push(inParams1);
console.log(' search params '+ JSON.stringify(params1));
odoo.execute_kw('calendar.event', 'search_read', params1, function (err, value) {
if (err) { return console.log(err) }
if(value) {
if (value.length > 0) {
value.forEach(function(a) {
a.start_datetime = moment(a.start_datetime).format('YYYY-MM-DD');
a.stop_datetime = moment(a.stop_datetime).format('YYYY-MM-DD');
});
const startdate = [...new Set(value.map(val => val.start_datetime))];
startdate.sort();
// return response.status(200).json( value)
return response.status(200).json({"code": 200, "content": {"availableDates": startdate, "status": "SUCCESS", "message": ""}})
}
}
您可以创建一个空对象并为其设置属性,然后将其作为来自您的节点 api 服务的响应发送。
let data = [
"2017-11-24",
"2017-11-27"
];
let response = [];
response.data = data;
response.code = 200;
response.status = 'success';
response.message = 'Mission Successful';
return response;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.