{{ 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<sup>*</sup>  | 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).  |
<sup>*</sup> 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)===
<code>
[{"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}]
</code>

===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: <Root>
> 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]]