不创建json对象

时间:2015-05-11 19:00:08

标签: javascript json fabricjs

我正在玩布料js,我似乎无法找到一种方法来创建/查看json对象

var canvas = new fabric.Canvas('c');

canvas.add(new fabric.Rect({ 
  left: 100, 
  top: 100, 
  width: 50, 
  height: 50, 
  fill: '#faa', 
  originX: 'left', 
  originY: 'top',
  centeredRotation: true
}));

canvas.add(new fabric.Circle({ 
  left: 300, 
  top: 300, 
  radius: 50, 
  fill: '#9f9', 
  originX: 'left', 
  originY: 'top',
  centeredRotation: true
}));

var w = canvas.toJSON();

http://jsfiddle.net/8t4k1xkc/1/

我也尝试过JSON.stringify但是将转换循环结构转换为json错误

1 个答案:

答案 0 :(得分:2)

您在问题中编写的代码有效,您可以将其转换为JSON.stringify(w)的字符串,但也只需调用JSON.stringify(canvas)(通过stringify将为您调用toJSON)。

JSFiddle上的那个,不是,你正在调用canvas.toJSON(c),这是错误的,这样你就会在生成的JSON中附加额外的属性,在这种情况下是同一个画布(c,全局变量自动由浏览器为 id =“c”创建的html元素创建,因此循环结构错误。

请参阅official documentation

  

<强>的toJSON(propertiesToInclude)

     

返回画布的JSON表示

     

参数:

     
      
  • propertiesToInclude(Array):您可能拥有的任何属性   想要在输出中另外包含
  •