- 概述
- 加密
- 数据库
- Java
- Python
- 网页 API
开发者活动
UiPath.WebAPI.Activities.DeserializeJson
描述
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.
项目兼容性
Windows - 旧版 | Windows | 跨平台
先决条件
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、跨平台配置
- 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.
高级选项
输入
- 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.
备注:
In Studio Web, generating the output structure from the JSON Sample property makes the Output type property read-only.
输出
- 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").
结果
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 - 旧版配置
属性面板
常见
- “显示名称”- 活动的显示名称。
输入
- 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.
- Json 字符串- 此为包含要反序列化的 JSON 数组的字符串。在双引号之间编写不带缩进的 JSON。JSON 中的字符串应使用单引号编写。下例展示了有效的 JSON:“{'TenancyName': 'Documentation', 'UsernameOrEmail': 'Documentation', 'Password': 'Documentation'}”。
其他
- “私有”- 选中后将不再以“Verbose”级别记录变量和参数的值。
- “类型参数” - 此为下拉列表,用于选择返回的输出类型。系统会将所提供的 JSON 字符串转换为所选类型的对象。
输出
- JsonObject - The deserialized JSON, as a
Newtonsoft.Json.Linq.JObjectvariable. Read more information onNewtonsoft.Json.Linq.JObjectobjects.
使用“反序列化 Json”活动的示例
“反序列化 Json”活动用于从 JSON 文件和字符串中提取数据。
为了举例说明如何使用此活动,我们创建了一个示例,该示例使用“反序列化 JSON”活动从 JSON 文件中提取人员的年龄。
此自动化流程的构建方法如下:
- 打开 Studio ,创建一个新“流程”。
- Drag a Sequence to the Workflow Designer.
-
创建以下变量:
变量名称 变量类型 默认值 JsonText字符串 JsonObjJObject Age泛型值
-
- 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
- 将“反序列化 JSON”活动添加到“读取文本文件”活动之后。
- 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
- 将“写入行”活动拖动到“分配”活动之后。
- 在“文本”字段中添加“
Age”变量。
- 在“文本”字段中添加“
- Run the process. The robot extracts the age value from the
.jsonfile and displays it in the Output panel.
您可在此处下载示例。