- Overview
- Cryptography
- Database
- Java
- Python
- WebAPI
Developer activities
UiPath.WebAPI.Activities.DeserializeJson
Description
Deserializes the JSON string or sample to a JSON object. By default, the result is a JObject, but you can choose a different output type using the Output type property.
Project compatibility
Windows - Legacy | Windows | Cross-platform
Prerequisites
To configure the Serializer settings property using data mapping, use Studio 25.10 or later. In earlier Studio versions, this property uses the Expression Editor window instead.
Windows, Cross-platform configuration
- JSON String - The string containing the JSON to be deserialized. The JSON should be written without indents, and between double quotes. Strings inside the JSON should be written with single quotes. For example, the following JSON is valid: "{'TenancyName': 'Documentation', 'UsernameOrEmail': 'Documentation', 'Password': 'Documentation'}".
- JSON Sample - A sample of the JSON used to generate the output object properties. The sample must be in JSON format. The activity converts this sample into a similar object that you can use during design time.
Advanced options
Input
- Serializer settings - Custom deserializer settings to be used when deserializing the JSON string. Use this property when you want to fully control how the JSON string is deserialized.
- Output type - A drop-down list that lets you choose the argument type of the object to deserialize into.
Note:
In Studio Web, generating the output structure from the JSON Sample property makes the Output type property read-only.
Output
- JSON object - The deserialized JSON, returned as an object of the type selected in the Output type property. When the default type is used, the result is a
Newtonsoft.Json.Linq.JObjectvariable. Read more information onNewtonsoft.Json.Linq.JObjectobjects.
Example of using the JSON Sample
The JSON Sample property generates the output object structure at design time from a representative JSON snippet. After you provide a sample, the activity infers a matching type and assigns it to the Output type property, so you can reference the deserialized values by name in downstream activities instead of querying them with SelectToken.
The JSON Sample property is a design-time helper. It is available in Studio Web and in Studio versions that support custom type inference. When these features are not available, the property is hidden.
To exemplify how to use the JSON Sample, we extract a person's name and city from a JSON string:
-
Add a Deserialize JSON activity to your workflow.
-
In the JSON String field, enter the JSON to deserialize. For example:
"{'name': 'John Doe', 'age': 30, 'address': {'city': 'New York'}}". -
In the JSON Sample field, paste a representative sample with the same structure:
{ "name": "John Doe", "age": 30, "address": { "city": "New York" } }{ "name": "John Doe", "age": 30, "address": { "city": "New York" } }The activity reads the sample and generates an output object that mirrors this structure. The Output type property updates to the generated type.
-
In a subsequent activity, reference the deserialized values directly through the property names defined in your sample, for example
JsonObject.nameandJsonObject.address.city, instead of usingJsonObject.SelectToken("name").
Result
The output object exposes the properties from your sample, so JsonObject.name returns John Doe and JsonObject.address.city returns New York without querying the JSON with SelectToken.
Example of using Serializer settings
When no data mapping is available for the Serializer settings property, configure it in the Expression Editor using one of the following code snippets. For more information, see the Newtonsoft documentation.
VB.NET
New JsonDeserializationSettings With {
.MissingMemberHandling = JsonMissingMemberHandling.Ignore,
.NullValueHandling = JsonNullValueHandling.Ignore,
.DateParseHandling = JsonDateParseHandling.DateTime,
.DateTimeZoneHandling = JsonDateTimeZoneHandling.Utc,
.FloatParseHandling = JsonFloatParseHandling.Double
}
New JsonDeserializationSettings With {
.MissingMemberHandling = JsonMissingMemberHandling.Ignore,
.NullValueHandling = JsonNullValueHandling.Ignore,
.DateParseHandling = JsonDateParseHandling.DateTime,
.DateTimeZoneHandling = JsonDateTimeZoneHandling.Utc,
.FloatParseHandling = JsonFloatParseHandling.Double
}
C#
new JsonDeserializationSettings
{
MissingMemberHandling = JsonMissingMemberHandling.Ignore,
NullValueHandling = JsonNullValueHandling.Ignore,
DateParseHandling = JsonDateParseHandling.DateTime,
DateTimeZoneHandling = JsonDateTimeZoneHandling.Utc,
FloatParseHandling = JsonFloatParseHandling.Double
}
new JsonDeserializationSettings
{
MissingMemberHandling = JsonMissingMemberHandling.Ignore,
NullValueHandling = JsonNullValueHandling.Ignore,
DateParseHandling = JsonDateParseHandling.DateTime,
DateTimeZoneHandling = JsonDateTimeZoneHandling.Utc,
FloatParseHandling = JsonFloatParseHandling.Double
}
Windows - Legacy configuration
Properties panel
Common
- DisplayName - The display name of the activity.
Input
- JSON Sample - The JSON sample for the output structure. The activity converts this sample into a similar object which you can use during design time.
- JsonString - The string containing the JSON to be deserialized. Write the JSON without indents, and between double quotes. Strings inside the JSON should be written with single quotes. For example, the following JSON is valid: "{'TenancyName': 'Documentation', 'UsernameOrEmail': 'Documentation', 'Password': 'Documentation'}".
Misc
- Private - If selected, the values of variables and arguments are no longer logged at Verbose level.
- TypeArgument - A drop-down list that enables you to select the type of output returned. The provided JSON string will be converted to an object of the selected type.
Output
- JsonObject - The deserialized JSON, as a
Newtonsoft.Json.Linq.JObjectvariable. Read more information onNewtonsoft.Json.Linq.JObjectobjects.
Example of Using the Deserialize Json Activity
The Deserialize Json activity is used for extracting data from JSON files and strings.
To exemplify how to use this activity, we have created an example that uses the Deserialize Json activity for extracting the age of a person from a JSON file.
This is how the automation process can be built:
- Open Studio and create a new Process.
- Drag a Sequence to the Workflow Designer.
-
Create the following variables:
Variable Name Variable Type Default Value JsonTextString JsonObjJObject AgeGenericValue
-
- Drag a Read Text File activity inside the sequence container.
- In the Properties panel, add the value
"JsonString.txt"in the FileName field. - Add the variable
JsonTextin the Content field.
- In the Properties panel, add the value
- Add a Deserialize JSON activity after the Read Text File activity.
- In the Properties panel, add the variable
JsonTextin the JsonString field and the variableJsonObjin the JsonObject field. - Select the value
Newtonsoft.Json.Linq.JObjectfrom the TypeArgument drop-down list.
- In the Properties panel, add the variable
- Place an Assign activity under the Deserialize JSON activity.
- Add the variable
Agein the To field and the expressionJsonObj.SelectToken("age").ToStringin the Value field.
- Add the variable
- Drag a Write Line activity after the Assign activity.
- Add the variable
Agein the Text field.
- Add the variable
- Run the process. The robot extracts the age value from the
.jsonfile and displays it in the Output panel.
Here you can download an example.