簡體   English   中英

如何在JSON nodejs中轉換數據類型

[英]How to convert the data type in JSON nodejs

我有一個NodeJS Express代碼,它只是以請求 - 響應格式將數據從客戶端傳遞到我的后端服務器。 現在我的客戶端期望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()對象並使用.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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM