Десериализовать объект JSON в Fabric.js

Я разрабатываю совместную доску с использованием fabricjs. Когда пользователь создает новый объект Fabric, я сериализую его и отправляю всем остальным пользователям.

var rect = new fabric.Rect();
canvas.add(rect);  
socket.emit("newObject", JSON.stringify(rect)); // sends the object to other users

Когда эти пользователи получают сериализованный объект, его следует десериализовать и добавить на свой холст. Каков наилучший способ сделать это? Мне не удалось найти функцию, которая десериализует один объект, только весь холст (loadFromJSON), поэтому я реализовал нелегкое решение:

function drawRoomObjects(roomObjects){
  var canvasString = "{\"objects\":[";
  for(var roomObjectKey in roomObjects){
    canvasString += roomObjects[roomObjectKey];
  }
  canvasString += "], \"background\":\"\"}";
  var tmpCanvas = new fabric.Canvas();
  tmpCanvas.loadFromJSON(canvasString);
  for(var k in tmpCanvas.getObjects()) {
    canvas.add(tmpCanvas._objects[k]);
  }
  canvas.renderAll();
}

Любые предложения для лучшего способа сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос