{{ transformations:ParseJsonAction.png}}
======PARSE JSON======
Category: Transform / Web\\
\\
=====Description=====
Parse text values that are JSON objects into a tabular dataset.\\
\\
=====Action settings=====
^Setting^Description^
| Column | The column containing the source JSON to be parsed. |
| JSON Path* | The path to the JSON node from which parsing starts. [[https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html|Learn more about the path syntax.]]|
| Column names |Select the method to be used to name columns in the result dataset. |
| Don't delete original column | When checked, the column with parsed JSON(s) will be kept in the result dataset. |
| Properties | Select which properties to parse. One property corresponds to one column in the result dataset.\\ Options: //Parse all properties// or //Parse selected properties// (and select which properties to parse). |
* Setting can be specified using a [[:parameters|parameter]].\\
\\
=====Examples=====
====Example #1====
>The data below was contained in the "Response-Body" column (kept for parsing). The column names ("date", "localName", etc.) are embedded within the data. (Line breaks have been inserted for clarity.)
===Before (source table)===
[{"id":"01","name":"John","Age":"23","Kids":true},
{"id":"02","name":"Louis","Age":"33","Kids":false},
{"id":"03","name":"Mark","Age":"44","Kids":false},
{"id":"04","name":"Tom","Age":"22","Kids":false}]
===After (result table)===
^id ^name ^Age ^Kids ^
|01 |John |23 |true |
|02 |Louis |33 |false |
|03 |Mark |44 |false |
|04 |Tom |22 |false |
===Action parameters===
> Column: Response-Body
> JSON Path:
> Column names: Property name
> Properties: Parse selected properties
> Selected properties: [*].id, [*].name, [*].Age, and [*].Kids
\\
=====Community examples=====
* [[https://community.easymorph.com/t//1375/5|Example "Getting public holidays from an API with Web Request"]] (Module: //Main//; Group: //Tab 1//; Table: //Public holidays//; Action position: //3//)
* [[https://community.easymorph.com/t//1269/4|Example: use of Web Request and Iterate Web Request with the Community forum API]] ([[https://community.easymorph.com/uploads/short-url/kJFnuALFUX72j3pqdxLHkuc0LVa.morph|Project]]; Module: //Main//; Group: //Tab 1//;\\ Table: //User details//; Action position: //6//)
* [[https://community.easymorph.com/t//1859/1|How to load JSON file]] ([[https://community.easymorph.com/uploads/short-url/mtkfaCmgkLQFViLB30MZEQYpPAv.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Imported table 1//; Action position: //3//)
* [[https://community.easymorph.com/t//2160/1|How to pull data from web APIs with pagination]] ([[https://community.easymorph.com/uploads/short-url/dvCSpcEDXYZ8aB0B2gtnt7qulTF.morph|Project]]; Module: //Main//; Group: //Group 1//; Table: //Query API with pagination//;\\ Action position: //4//)
* [[https://community.easymorph.com/t//2220/1|Example: obtaining stock price history from web API]] ([[https://community.easymorph.com/uploads/short-url/q46H2C6P5gxJt02P2TexolJXvBK.morph|Project]]; Module: //Main//; Group: //Group 1//; Table: //Stock history//; Action position: //3//)
\\
=====See also=====
* [[transformations:parsexml|Parse XML]]
* [[transformations:constructjson|Construct JSON]]