[英]From JS Object to JSON Angular
考慮以下TypeScript類:
export class Spot {
public flight:number;
public dateAndTimes:Map<string,string>
public unitCost:number;
constructor(){
this.flight=0;
this.dateAndTimes= new Map<string,string>();
this.unitCost=0;
}
}
如何將Spot對象轉換為JSON?
我嘗試JSON.stringify(spot)
,但是屬性dateAndTimes
被序列化為空...例如:
"spot": {
'flight':2,
{},
'unitCost':3500
}
非常感謝你!
從MDN文檔引用JSON.stringify
:
- 所有其他Object實例(包括Map,Set,WeakMap和WeakSet)將僅序列化其可枚舉屬性。
因為Map
可以具有任何類型的鍵和值,所以即使您能夠對其進行字符串化,JSON規范也不會考慮“對象,數組,數字,字符串,布爾值和null”以外的任何類型。 因此,如果Map
任何鍵或值都不是這些類型的,那么規范將不允許它。
最后一點是非常重要的,因為即使Map以某種方式序列化為JSON但包含了任何類型的鍵或值(不是上述允許的類型),也無法確定解析器如何將結果JSON處理回對象。 如果沒有必要使用Map,那么我建議為此使用普通對象,以完全避免此問題。
需要注意的是,也不可能推出自己的replacer
功能的JSON.stringify
方法來處理這個功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.