Time for Action: Encoding and Decoding JSON

Most modern web browsers support native JSON encoding and decoding. Let's examine the methods available inside this object:

Method Description
JSON.stringify(object) We use JSON.stringify to convert JavaScript objects to JSON-formatted text.
JSON.parse(string) We use JSON.parse to convert text into JavaScript objects.

 

Let's learn how to encode and decode with the JSON notation by creating a simple model—a 3D line. Here, we will be focusing on how we do JSON encoding and decoding. Follow the given steps:

  1. In your browser, open the interactive JavaScript console. Use the following table for assistance:
Browser Shortcut keys (PC/Mac)
Firefox Ctrl Shift + K/Command + Alt + K
Safari Ctrl + Shift + C/Command + Alt + C
Chrome Ctrl + Shift + J/Command + Alt + J
  1. Create a JSON object by typing the following:
const model = { vertices: [0, 0, 0, 1, 1, 1], indices: [0, 1] };
      1. Verify that the model is an object by writing the following:
      typeof(model); // outputs "object"
      JavaScript Type-Checking

      Since many things in JavaScript are objects, it is recommended that you are more rigorous with type-checking. We will just use typeof for demonstration purposes. Additionally, there are many utility libraries, such as Lodash (https://lodash.com), that extend JavaScript features to provide these operations and more.
      1. Let's print the model attributes. Write this in the console (press Enter at the end of each line):
      model.vertices // outputs the vertices
      model.indices // outputs the indices
      1. Let's create a JSON text:
      const text = JSON.stringify(model);
      alert(text);
      1. What happens when you type text.vertices?
      2. As you can see, you get a message saying that text.vertices is undefined. This happens because text is not a JavaScript object, but a string with the peculiarity of being written according to JSON notation to describe an object. Everything in it is text, and so it does not have any fields.
      3. Let's convert the JSON text back into an object. Type the following:
      const model2 = JSON.parse(text);
      typeof(model2); // outputs "object"
      model2.vertices; // outputs vertices

      What just happened?

      We have learned to encode and decode JSON objects. These exercises are relevant because we will use the same process to define our geometry to be loaded from external files. In the next section, we will see how to download geometric models specified with JSON from a web server.

      ..................Content has been hidden....................

      You can't read the all page of ebook, please click here login for view all page.
      Reset
      3.129.19.251