javascript - 对象的自定义属性在 Canvas 中被清除为 json

标签 javascript json canvas html5-canvas fabricjs

我有一个包含多个图像对象 的 Canvas 。每个对象都有一些自定义属性。我需要将此 Canvas 作为 json 对象保存到数据库中。我使用以下代码将 Canvas 转换为 json。

canvasJson = JSON.stringify(canvas);

转换后,canvasJson 不能有任何自定义属性及其值。它只有默认属性和宽度、高度、不透明度等值。

我该如何解决?请提出一些正确的方法来解决这个问题......

编辑

以下是我在 Canvas 中创建图像对象的图像对象创建代码。

var imgObj = new Image();
var imgSrc = $IMAGE_URL;
imgObj.src = imgSrc;
var image = new fabric.Image(imgObj);
    image.set({
        left: 0,
        top: 0,
        angle: 0,
        padding: 0,
        cornersize: 0,
        lockMovementX: true,
        lockMovementY: true,
        lockRotation: true,
        elementId: $elementID,
        elementname: $elementName,
        elementstatus: $elementStatus,
        width: componentImageWidth,
        height: componentImageHeight
    });
    canvas.add(image);
    image.setCoords();
    canvas.renderAll();
    canvas.selection = false;
    canvas.renderAll();
    setObjectAction(image, false);

使用 JSON.stringify(canvas); elementIdelementnameelementstatus 将 Canvas 转换为 json缺失。但默认属性是正确获取的。

如何解决这个问题?

最佳答案

您可以使用 fabric 的 canvas.toJson() 或 canvas.toDatalessJSON() 函数,并且可以将自定义属性作为参数包含在内,如下所示:

var json = JSON.stringify(canvas.toDatalessJSON(['elementId','elementname', 'elementstatus']));

关于javascript - 对象的自定义属性在 Canvas 中被清除为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363631/

相关文章:

javascript - Fusion Tables 层中超过最大 URL 长度的请求

javascript - 未通过 paho mqttws31.js 在移动网络客户端上接收 mqtt 消息

python - 请求正文具有无效的 json 格式 - Python

php - 用 php 5 解析 json 不工作

javascript - Canvas clarerect,带 alpha

javascript - 使用切片排除数组的最后一个元素

javascript - Jquery on click 函数在页面加载时调用

java - XML 到 JSON 的转换缺少元素

angular - 2/4 Angular 屏幕截图

javascript - 函数内的间隔被调用数百次