Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can look at this routine as the preparatory one for the integration with other systems. You build your data structure first and then convert your struct to json to be sent to an external system. This script demonstrates the process of using structs and/or arrays to create JSON output.

Code Block
languagejs
//Step 1 - define the structs/arrays
struct code {
    number [] rgba;
    string hex;
}

struct color {
    string color;
    string category;
    string type;
    code code;
}

struct colors {
    color [] colors;
}

//Step 2 - add data to the structs
color red;
red.color = "red";
red.category = "hue";
red.type = "primary";
red.code.rgba = {255, 0, 0, 1};
red.code.hex = "#FF0";

color yellow;
yellow.color = "yellow";
yellow.category = "hue";
yellow.type = "primary";
yellow.code.rgba = {255, 255, 0, 1};
yellow.code.hex = "#FF0";

color blue;
blue.color = "blue";
blue.category = "hue";
blue.type = "primary";
blue.code.rgba = {0, 0, 255, 1};
blue.code.hex = "#00F";

color green;
green.color = "green";
green.category = "hue";
green.type = "primary";
green.code.rgba = {0, 255, 0, 1};
green.code.hex = "#0F0";

colors colors;

colors.colors += red;
colors.colors += yellow;
colors.colors += green;
colors.colors += blue;

//Step 3 - create the JSON
return toJson(colors);

Resulting JSON:

Code Block
languagejs
{
   "colors":[
      {
         "color":"red",
         "category":"hue",
         "type":"primary",
         "code":{
            "rgba":[255,0,0,1],
            "hex":"#FF0"
         }
      },
      {
         "color":"yellow",
         "category":"hue",
         "type":"primary",
         "code":{
            "rgba":[255,255,0,1],
            "hex":"#FF0"
         }
      },
      {
         "color":"green",
         "category":"hue",
         "type":"primary",
         "code":{
            "rgba":[0,255,0,1],
            "hex":"#0F0"
         }
      },
      {
         "color":"blue",
         "category":"hue",
         "type":"primary",
         "code":{
            "rgba":[0,0,255,1],
            "hex":"#00F"
         }
      }
   ]
}

...