如何在 JSON nodejs 中转换数据类型



我有一个NodeJS快速代码,它只是以请求-响应格式将数据从客户端传递到后端服务器。 现在,我的客户端期望 JSON 响应中的美元金额为双精度数据类型。 我如何动态地做到这一点。 例如下面,

var data =   [
{
"feeType":"Trip",
"feeCategory":"Transaction",
"feeAmount":0,
"isApplicable":true,
"isRequired":true,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
},
{
"feeType":"FerryFee",
"feeCategory":"Passenger",
"feeAmount":2,
"isApplicable":true,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":2
},
{
"feeType":"WillCall",
"feeCategory":"Service",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"Pickup",
"appliedFeeAmount":0
},
{
"feeType":"NotTravelling",
"feeCategory":"Service",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"PrintAtHome",
"appliedFeeAmount":0
},
{
"feeType":"Pickup",
"feeCategory":"Delivery",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
},
{
"feeType":"PrintAtHome",
"feeCategory":"Delivery",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
}

]

我的客户期望作为带有 .0 或十进制数字的数字值。我该怎么做?

使用Object.entries遍历对象并使用.toFixed()添加小数

const data = [{
"feeType": "Trip",
"feeCategory": "Transaction",
"feeAmount": 0,
"isApplicable": true,
"isRequired": true,
"applicableDeliveryType": "None",
"appliedFeeAmount": 0
},
{
"feeType": "FerryFee",
"feeCategory": "Passenger",
"feeAmount": 2,
"isApplicable": true,
"isRequired": false,
"applicableDeliveryType": "None",
"appliedFeeAmount": 2
}
]
const result = data.map(o => Object.entries(o).reduce((acc, [key, value]) => {
acc[key] = typeof value.toFixed === 'function' ? value.toFixed(1) : value;
return acc;
}, {}))
console.log(result);

for .. in

const data = [{
"feeType": "Trip",
"feeCategory": "Transaction",
"feeAmount": 0,
"isApplicable": true,
"isRequired": true,
"applicableDeliveryType": "None",
"appliedFeeAmount": 0
},
{
"feeType": "FerryFee",
"feeCategory": "Passenger",
"feeAmount": 2,
"isApplicable": true,
"isRequired": false,
"applicableDeliveryType": "None",
"appliedFeeAmount": 2
}
]
const result = [];
data.forEach(o => {
const tempObj = {};
for (let key in o) {
tempObj[key] = typeof o[key].toFixed === 'function' ? o[key].toFixed(1) : o[key];
}
result.push(tempObj);
});
console.log(result);

最新更新