User Tools

Site Tools


transformations:constructjson

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
transformations:constructjson [2020/01/11 15:44] dmitrytransformations:constructjson [2021/07/18 00:59] craigt
Line 1: Line 1:
-===== Construct JSON =====+{{ transformations:ConstructJsonAction.png}} 
 +======CONSTRUCT JSON=====
 +Category: Transform / Advanced \\
  
 +\\ 
 +=====Description=====
 This action constructs a [[https://en.wikipedia.org/wiki/JSON|JSON]] object from a tabular dataset. It has two modes: This action constructs a [[https://en.wikipedia.org/wiki/JSON|JSON]] object from a tabular dataset. It has two modes:
   * 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.+A constructed JSON object is effectively a regular text value that is stored in a datagrid cell in EasyMorph.\\
  
-==== Mode "Object per row" ====+\\  
 +=====Action settings===== 
 +==== Mode"Object per row" ====
 In this mode, each row of the source dataset is used to construct a flat JSON object in which every column value corresponds to one object property. For instance, the dataset below: In this mode, each row of the source dataset is used to construct a flat JSON object in which every column value corresponds to one object property. For instance, the dataset below:
  
Line 47: Line 53:
      
 </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:+In this modethe source dataset is converted into a new dataset in which values of each column are rolled up into a JSON array. For instancethe table from the example above would be converted into the following table:
  
 ^ ID ^ Name ^ ^ ID ^ Name ^
 | [1,2] | [Apple,Orange]  | | [1,2] | [Apple,Orange]  |
  
- +\\ \\  
-==== Data type conversion ====+===== Data type conversion =====
 EasyMorph data types are converted to JSON types as follows: EasyMorph data types are converted to JSON types as follows:
  
 ^ 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:00 |
 | Boolean    TRUE  | boolean  | true  | | Boolean    TRUE  | boolean  | true  |
 | Empty          | null     | null  | | Empty          | null     | null  |
Line 68: Line 74:
 Note that the action fails if the source dataset contains an error value. Note that the action fails if the source dataset contains an error value.
  
-==== 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:+===== Nesting JSON objects ===== 
 +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 instanceconverting the table below:
  
 ^ Track ^ Country  ^ State/province ^ City     ^ Location ^ Hiatus ^  ^ Track ^ Country  ^ State/province ^ City     ^ Location ^ Hiatus ^ 
Line 89: Line 96:
 } }
 </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 "Locationis inserted as a JSON object, not as text. Also, the field "Hiatus" is inserted as a JSON array, not as text.
  
-==== See also ==== +\\  
-  * [[https://community.easymorph.com/t/example-constructing-json/1279/5|Example: Constructing JSON]] +=====Community examples===== 
-  * [[transformations:parsejson|Parse JSON]] +  * [[https://community.easymorph.com/t//1279/6|Example: Constructing JSON]] ([[https://community.easymorph.com/uploads/short-url/qlhc3zdusCyuxWf2u0h0dqvgo0v.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //comments//; Action position: //2//) 
-  * [[syntax:functions:isjson|isjson]]+  * [[https://community.easymorph.com/t//1661/1|How to create JSON for Airtable API]] ([[https://community.easymorph.com/uploads/short-url/kBrGoLczmNrnMt0SnXUhqOwjjRF.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Table 1//; Action position: //6//) 
 +  * [[https://community.easymorph.com/t//2142/2|Constructing JSON issue]] ([[https://community.easymorph.com/uploads/short-url/aSWREiaUoC1qFEYRqTyu4Nwzdls.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Construct main JSON//; Action position: //4//) 
 +  * [[https://community.easymorph.com/t//2641/1|How to publish real-time data to streaming dataset in Power BI]] ([[https://community.easymorph.com/uploads/short-url/22DTxfF295TVGQhGyvWGsHyadRt.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Table 1//; Action position: //5//) 
 +  * [[https://community.easymorph.com/t/webrequest-and-parameters/2758/3|Community example:  Webrequest and parameters]]
  
 +\\ 
 +===== See also =====
 +  * [[transformations:parsejson|Parse JSON]]
 +  * [[syntax:functions:isjson|Functions:  IsJson()]]
  
transformations/constructjson.txt · Last modified: 2022/10/02 20:16 by craigt

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki