Javascript 使用fabric.js在画布中保存JSON

Javascript 使用fabric.js在画布中保存JSON,javascript,json,html,canvas,fabricjs,Javascript,Json,Html,Canvas,Fabricjs,我尝试导入多个svg文件,修改后将json保存到数据库中。我试着用 canvas.item(0).sourcePath = '/URL/FILE.svg'; JSON.stringify(canvas.toDatalessJSON()); 但这不适用于多个文件,它只适用于第一个文件。我试图指定每个文件的url,但无法理解如何做到这一点。有什么解决办法吗 提前感谢canvas.item0-获取第一个对象。canvas.item1-获取第二个对象,依此类推 如果不知道对象的总数,可

我尝试导入多个svg文件,修改后将json保存到数据库中。我试着用

    canvas.item(0).sourcePath = '/URL/FILE.svg';
    JSON.stringify(canvas.toDatalessJSON());
但这不适用于多个文件,它只适用于第一个文件。我试图指定每个文件的url,但无法理解如何做到这一点。有什么解决办法吗


提前感谢

canvas.item0-获取第一个对象。canvas.item1-获取第二个对象,依此类推

如果不知道对象的总数,可以使用canvas.forEachObject选项

     canvas.forEachObject(function(obj){
        obj.sourcePath = '/URL/FILE.svg';
        console.log(obj.sourcePath)
     });

     JSON.stringify(canvas.toDatalessJSON());
当您像这样加载svg时,还可以设置obj.sourcePath

    fabric.loadSVGFromString(svg, function(objects, options) {
      var obj = fabric.util.groupSVGElements(objects, options);
      obj.sourcePath = '/URL/FILE.svg';
      canvas.add(obj);
      canvas.renderAll();
    });

希望有帮助

canvas.item0-获取第一个对象。canvas.item1-获取第二个对象,依此类推

如果不知道对象的总数,可以使用canvas.forEachObject选项

     canvas.forEachObject(function(obj){
        obj.sourcePath = '/URL/FILE.svg';
        console.log(obj.sourcePath)
     });

     JSON.stringify(canvas.toDatalessJSON());
当您像这样加载svg时,还可以设置obj.sourcePath

    fabric.loadSVGFromString(svg, function(objects, options) {
      var obj = fabric.util.groupSVGElements(objects, options);
      obj.sourcePath = '/URL/FILE.svg';
      canvas.add(obj);
      canvas.renderAll();
    });

希望有帮助

谢谢!我以前确实试过,但是有一些错误,我又用正确的方法做了一次,结果很好…………谢谢!我以前确实试过,但是有一些错误,我又用正确的方法做了一次,它是好的。。。。。。。。。。。。。