How to create a JSON representation of a Line object using FabricJS?


In this tutorial, we are going to learn about how to create a JSON representation of a Line object using FabricJS. A Line element is one of the basic elements provided in FabricJS. It is used for creating straight lines. Because line elements are geometrically one-dimensional and do not contain an interior, they are never filled. We can create a line object by creating an instance of fabric.Line, specifying the x and y coordinates of the line and adding it to the canvas. In order to create a JSON representation of a Line object, we use the toJSON method.

Syntax

 toJSON(propertiesToInclude: Array): Object 

Parameters

  • propertiesToInclude − This parameter accepts an Array which contains any properties we might want to additionally include in the output. This parameter is optional.

Using the toJSON method

Example

Let’s see a code example to see the logged output when the toJSON method is used. In this case, a JSON representation of the line instance will be returned.

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Using the toJSON method</h2> <p> You can open console from dev tools and see that the logged output contains the JSON representation of the line instance </p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a Line object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, }); // Add it to the canvas canvas.add(line); // Using the toJSON method console.log("JSON representation of the Line instance is: ", line.toJSON()); </script> </body> </html>

Using toJSON method to add additional properties

Example

Let’s see a code example to see how we can include additional properties by using the toJSON method. In this case, we have added a custom property called “name”. We can pass the specific property to the fabric.Line instance as second argument in options object and pass same key to the toJSON method.

<!DOCTYPE html> <html> <head> <!-- Adding the Fabric JS Library--> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>Using toJSON method to add additional properties</h2> <p> You can open console from dev tools and see that the logged output contains added property called name </p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a Line object with name key // passed in options object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, name: "Line instance", }); // Add it to the canvas canvas.add(line); // Using the toJSON method console.log( "JSON representation of the Line instance is: ", line.toJSON(["name"]) ); </script> </body> </html>

Updated on: 20-Jan-2023

323 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements