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