簡體   English   中英

JSON.stringify更改屬性

[英]JSON.stringify changing properties

https://jsfiddle.net/6CDFr/229/

function testing() {
  foo = canvas.getObjects();
  bar = JSON.stringify(canvas.getObjects());
  console.log(foo);
  console.log(bar);
}

JSON.stringify()更改了“ x1”,“ y1”,“ x2”和“ y2”屬性,如上面我的JSFiddle鏈接中所述,我不確定為什么。

來自JSON.stringify的(Mozilla)文檔( https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON_behavior

toJSON()行為

如果要被字符串化的對象具有名為toJSON的屬性,其值是一個函數,那么toJSON()方法將自定義JSON字符串化行為:代替被序列化的對象, 由toJSON()方法返回 值在被調用時將被序列化 例如:

如果使用以下內容,則應獲得相似的值

function testing() {
    foo = canvas.getObjects()[0];
    bar = JSON.stringify(canvas.getObjects()[0]);
    console.log(foo.toJSON());
    console.log(bar);
}

或者如果將toJSON屬性設置為undefined(但是我很確定這將對fabric.js造成嚴重破壞,除非您在對象的副本上進行此操作-我已經在下面的對象上直接進行了處理)

function testing() {
    foo = canvas.getObjects();
    bar = JSON.stringify(canvas.getObjects().map(function (o) {
        o.toJSON = undefined;
        return o
    }));
    console.log(foo);
    console.log(bar);
}

暫無
暫無

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

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