1.44.6 +版本,可能导致部分JSON提取的结果发生变化

CL 2025/5/9 发布 · 2025/5/9 更新 · 111 次阅读

旧版本的问题

之前版本,当提取的结果是json数组(JArray对象),当输出到文本时,会生成不合法的json数据。

参考问题:

这主要是早期考虑不周,为了简化对结果文本的处理所埋下的坑。

 

所做的修改

在 1.44.6版本中进行了修改,如果数组元素不是简单内容,则输出为合法json数组格式。

这可能导致一些之前一些直接输出json结果到文本的动作无法正常工作。

参考问题:

 

目前的输出json 数组到文本类型变量的行为是这样的:

  • 对于简单对象数组(文本、数字、布尔等),输出结果是对应值的列表(换行分隔)。
  • 对于对象数组,输出的结果是合法json文本。

这一行为仍然存在一定的不确定性,例如,当数组中的文本本身存在换行,那么就会和条目之间的换行混淆。

 

修改动作的提示

推荐的做法:

  • 如果提取的对象是数组的第一项,可以在jsonpath中指定`[0]`,如:`trans_result[0]`。
  • 如果希望提取的是数组本身,建议直接输出到“动态类型”的变量。这时候该变量会实际存储原始JArray类型对象,可以比较方便的对数组进行转换或提取信息。
  • 例如,可以使用表达式对JArray数组排序,并提取里面的信息:$= {tabs}.OrderBy(x => x["url"]).Select(x => x["id"])

 

在修改动作时,可以用如下方式快速找到json提取的步骤:

  • 在模块上右键,选择“高亮步骤”, 也可以在右侧步骤列表中的步骤上右键,“高亮相似步骤”。(步骤高亮会使用整个名称完整匹配的模式)
  • 点击展开,方便看到所有高亮的步骤。

 

 

 

 

· {{comment.createTimeStr}}
{{reply.votePoints}}
回复   – {{reply.createTimeStr}}
回复 x
标签
目录
相关操作