User Tools

Site Tools


transformations:constructjson

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
transformations:constructjson [2020/01/11 15:26] – created dmitrytransformations:constructjson [2020/01/11 15:54] – [Nesting JSON objects] dmitry
Line 4: Line 4:
   * Object per row, array from objects   * Object per row, array from objects
   * Array per column   * Array per column
 +
 +A constructed JSON object is effectively a regular text value that is stored in a datagrid cell in EasyMorph.
  
 ==== Mode "Object per row" ==== ==== Mode "Object per row" ====
Line 23: Line 25:
   "Family": "Leporidae"   "Family": "Leporidae"
 } }
 +</code>
 +
 +If the source dataset contains multiple rows, they will be converted into an array of JSON objects where each object corresponds to one row. Example:
 +
 +^ ID ^ Name ^
 +| 1 | Apple  |
 +| 2 | Orange |
 +
 +Result:
 +<code>
 +[
 +  {
 +    "ID":1,
 +    "Name":"Apple"
 +  },
 +  {
 +    "ID":2,
 +    "Name":"Orange"
 +  }
 +]
 +  
 </code> </code>
  
 ==== Mode "Array per column" ==== ==== Mode "Array per column" ====
 +In this mode the source dataset is converted into a new dataset in which values of each column are rolled up into a JSON array. For instance the table from the example above would be converted into the following table:
 +
 +^ ID ^ Name ^
 +| [1,2] | [Apple,Orange]  |
 +
  
 ==== Data type conversion ==== ==== Data type conversion ====
Line 32: Line 60:
 ^ EasyMorph ^ Example ^ JSON ^ Example ^ ^ EasyMorph ^ Example ^ JSON ^ Example ^
 | Text      | ABC     | string  | "ABC"   | | Text      | ABC     | string  | "ABC"   |
-| Number    | 123.45  | number  |  123.45 | +| Number    |  123.45 | number  |  123.45 | 
-| Number (formatted as date)   | 2020-Jan-10  | date  |  2020-01-10T00:00:00Z |+| Number (formatted as date)    2020-Jan-10 | date  |  2020-01-10T00:00:00Z |
 | Boolean    TRUE  | boolean  | true  | | Boolean    TRUE  | boolean  | true  |
 | Empty          | null     | null  | | Empty          | null     | null  |
Line 41: Line 69:
  
 ==== Nesting JSON objects ==== ==== Nesting JSON objects ====
-EasyMorph detects if a text value already is a JSON object or JSON array. In this case, such text value is inserted verbatim, **without** wrapping with double quotes. This feature allows creating complex hierarchical JSON objects that nest other JSON objects. For instance converting the table below:+EasyMorph automatically detects if a text value is already a JSON object or JSON array. In this case, the text value is inserted verbatim, i.e. **without** wrapping in double quotes. This feature allows creating complex hierarchical JSON objects that nest other JSON objects. For instance converting the table below:
  
 ^ Track ^ Country  ^ State/province ^ City     ^ Location ^ Hiatus ^  ^ Track ^ Country  ^ State/province ^ City     ^ Location ^ Hiatus ^ 
Line 62: Line 90:
 </code> </code>
 Notice that Location is inserted as a JSON object, not as text. Field "Hiatus" is inserted as a JSON array, not as text too. Notice that Location is inserted as a JSON object, not as text. Field "Hiatus" is inserted as a JSON array, not as text too.
 +
 +==== See also ====
 +  * [[https://community.easymorph.com/t/example-constructing-json/1279/5|Example: Constructing JSON]]
 +  * [[transformations:parsejson|Parse JSON]]
 +  * [[syntax:functions:isjson|isjson]]
  
  
transformations/constructjson.txt · Last modified: 2022/10/02 20:16 by craigt

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki