簡體   English   中英

從JS對象到JSON Angular

[英]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.

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