We will learn and understand the usage of JSON function in Power Apps. Before we start, make sure to subscribe to CRM Crate so that you can stay up to date in the field of Power Apps.
What is JSON?
The term “JSON” stands for JavaScript Object Notation. It is a lightweight format for storing and transporting data and is often used when data is sent from a server to a web page.
JSON Syntax Rules
1. Data is in name/value pairs
2. Data is separated by commas
3. Curly braces hold objects
4. Square brackets hold arrays
The below example defines an animal object: an array of 3 animal records (objects):
{
"animal":[
{"name":"Elephant", "region":"India"},
{"name":"Tiger", "region":"India"},
{"name":"Kangaroo", "region":"Australia"}
]
}
Understanding JSON() function in Power Apps
The Power FX’s JSON function returns the JavaScript Object Notation representation of a data structure as text so that it’s suitable for storing or transmitting across a network. ECMA-404 and IETF RFC 8259 describe the format, which is widely used by JavaScript and other programming languages.
JSON(DataStructure [, Format])
1. DataStructure – Required. The data structure to convert to JSON. Tables, records, and primitive values are supported, arbitrarily nested.
2. Format – Optional. JSONFormat enum value. The default value is Compact, which doesn’t add newlines or spaces and blocks binary data and unsupported columns.
There are multiple JSONFormat enums available in Power Apps. You can specify the optional “Format” argument / parameter to control how readable the result is and how unsupported and binary data types are handled. By default, the JSON output is set as compact with no unnecessary spaces or newlines, and unsupported data types and binary data aren’t allowed. You can combine multiple formats if you specify the & operator.
JSONFormat enum | Description |
---|---|
Compact | Default. The output is as compact as possible with no added spaces or newlines. |
IndentFour | To improve readability, the output contains a newline for each column and nesting level and uses four spaces for each indentation level. |
IncludeBinaryData | The result includes image, video, and audio-clip columns. This format can dramatically increase the result’s size and degrade your app’s performance. |
IgnoreBinaryData | The result doesn’t include image, video, or audio-clip columns. If you specify neither IncludeBinaryData nor IgnoreBinaryData, the function produces an error if it encounters binary data. |
IgnoreUnsupportedTypes | Unsupported data types are allowed, but the result won’t include them. By default, unsupported data types produce an error. |
Covert a Power Apps Collection into JSON
In our scenario, we will convert the collection’s data into JSON. In the below given example, we have first created a new collection named “CRMCrateData” as given below.
ClearCollect( CRMCrateData,
{ UserName: "Prashant Tirlotkar", Country: "India", ID: 123 },
{ UserName: "Omkar Rane", Country: "India", ID: 456 },
{ UserName: "Priya Gupta", Country: "India", ID: 789 },
{ UserName: "Srushti Deshmukh", Country: "India", ID: 333 },
{ UserName: "Ishita Kothari", Country: "India", ID: 444 },
{ UserName: "Sourav Pal", Country: "India", ID: 555 },
{ UserName: "Prashant Miraje", Country: "India", ID: 666 },
{ UserName: "Vipul Kithani", Country: "India", ID: 777 },
{ UserName: "Vrinda Patel", Country: "India", ID: 888 }
);
Later, a new variable is created which stores the converted JSON data as given below.
Set(varJSON, JSON(CRMCrateData,Compact))
The below animations demonstrate the implementation of Collection to JSON transformation in Power Apps.
[…] user experience with SetFocus function in Power App. Before we start, make sure to subscribe to CRM Crate so that you can stay up to date in the field of Power […]
Your article helped me a lot, is there any more related content? Thanks!
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.