You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UiPath使用Newtonsoft解析JSON提取指定路径生成选择器字符串方案

解决方案

你可以直接在UiPath中使用Invoke Code活动,结合Newtonsoft.Linq的JToken内置方法完成属性提取和字符串拼接,不需要自定义类,具体实现如下:

前置准备

  • 无需额外安装依赖包,UiPath默认JSON活动已经内置Newtonsoft.Json相关命名空间
  • 输入变量:已经获取到的目标节点JToken变量 myJToken
  • 输出变量:拼接完成的结果字符串 resultStr(类型为String)

实现代码(C#版本,直接复制到Invoke Code活动即可运行)

using System.Text;
using Newtonsoft.Json.Linq;

StringBuilder sb = new StringBuilder();

// 1. 拼接首行element节点下的html标签
JObject htmlNode = (JObject)myJToken["element"]["html"];
string htmlAttrs = string.Join(" ", htmlNode.Properties().Select(p => $"{p.Name}='{p.Value}'"));
sb.AppendLine($"<html {htmlAttrs}/>");

// 2. 处理anchor节点,非空则输出内部webctrl标签
JObject anchorNode = (JObject)myJToken["anchor"];
if (anchorNode.HasValues)
{
    JObject anchorWebctrl = (JObject)anchorNode["webctrl"];
    string anchorAttrs = string.Join(" ", anchorWebctrl.Properties().Select(p => $"{p.Name}='{p.Value}'"));
    sb.AppendLine($"<webctrl {anchorAttrs}/>");
}

// 3. 处理nav节点,非空则输出属性标签
JObject navNode = (JObject)myJToken["nav"];
if (navNode.HasValues)
{
    string navAttrs = string.Join(" ", navNode.Properties().Select(p => $"{p.Name}='{p.Value}'"));
    sb.AppendLine($"<nav {navAttrs}/>");
}

// 4. 拼接末尾element节点下的webctrl标签
JObject elementWebctrl = (JObject)myJToken["element"]["webctrl"];
string webctrlAttrs = string.Join(" ", elementWebctrl.Properties().Select(p => $"{p.Name}='{p.Value}'"));
sb.AppendLine($"<webctrl {webctrlAttrs}/>");

// 将结果赋值给输出变量
resultStr = sb.ToString().TrimEnd();

代码说明

  • 逻辑完全匹配你给出的拼接规则,自动判断anchor、nav节点是否为空,空节点直接跳过
  • 属性为动态遍历拼接,不需要硬编码属性名称,新增属性也不需要修改代码
  • 完全基于JToken原生方法实现,不需要自定义类,完全适配UiPath使用场景
  • 如果你习惯使用VB.NET,仅需要将上述C#代码转换为VB语法即可,核心逻辑完全一致

内容的提问来源于stack exchange,提问作者Meghdut Saha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:45:05