旧版本的问题
之前版本,当提取的结果是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提取的步骤:
- 在模块上右键,选择“高亮步骤”, 也可以在右侧步骤列表中的步骤上右键,“高亮相似步骤”。(步骤高亮会使用整个名称完整匹配的模式)
- 点击展开,方便看到所有高亮的步骤。