使用快捷方式中的“从列表中选择”选择多个选项发布JSON列表[] 理想模型发送“选择的商品”数组发送“合并文本”“内置”数组从输入中获取字典在“获取内容”操作中列出各个标签可能的解决方案和TL; DR

问题描述

这里是一个JSON array Shortcut测试JSON列表的示例(在测试环境中使用有效的API令牌)。

快捷方式中有一些“快速查看”和Pretty Print Dictionary操作,以易于阅读。

理想模型

使用“从列表中选择”操作,快捷方式用户从显示的tags列表中选择project。用户可以从列表中选择多个tags(启用“选择多个”)。 快捷方式然后执行“获取URL的内容”操作,以发送带有JSON“请求正文”的POST请求。三个主键是:pid(项目ID)为数字,created_with为字符串,tags为数组:

"data": {
    "pid": 123,"created_with": "Workflow","tags": [ "bar1","bar2","bar3" ]
}

发送“选择的商品”数组

如果我将tags(从“从列表中选择”操作中选择的一系列项目)的值发送给Chosen Item到“获取内容”操作,则快捷方式将解释该列表。而不是将列表作为字符串数组传递(如上面的理想示例中所示),而是将其作为单个字符串传递,列表项之间用\n新行分隔:

"tags": [ "bar1\nbar2\nbar3" ]

注意:快捷方式示例使用“获取内容”操作返回所有标签(包括通过发送回这些长字符串而创建的新标签),因此标签的选择已经过硬编码,以便于使用。 / em>

如果用户选择并发送单个标签(例如bar2),则不会进行任何额外的操作(因为没有添加额外的新行),并且可以按预期的方式构建数组(例如,{{1} }。

发送“合并文本”“内置”数组

为避免这种情况,我尝试了结合使用“组合”和“文本”操作来制作自己的数组。

"tags": [ "bar2" ]

如果我这样做,快捷方式将“逃脱快乐”,结果选择了三个标签,如下所示:

Combine 'Chosen Item' with 'Custom' ","

Text
"Combined Text"

Set variable 'tags' to "Text"

在“转义双引号”的路径下存在疯狂("tags": [ "\"bar1\",\"bar2\",\"bar3\"" ] ),将双引号更改为单引号会将结果数组作为字符串发送:

\\\",\\\"

这使我着眼于“获取内容”操作的“请求正文”,因为双引号被添加在数组之前。 “获取内容”操作具有"tags": [ "'bar1','bar2','bar3'" ] 作为数组。

如果您深入研究tags数组项(在“获取内容”操作中),我可以添加的选择是文本,数字,数组,字典或布尔值。选择数组将在此数组中创建一个数组(不是我想要的,它已经是一个数组),因此文本是最佳选择。这是我单引号的来源。知识就是力量。

从输入中获取字典

我还尝试使用“从输入获取字典”操作将数组转换为字典,将其解析为变量,然后将其放入“获取内容”操作请求中。我能看到此工作的唯一方法是,如果我通过“从输入获取字典”操作转换并构建请求主体的全部,因为请求主体已经是“字典”类型-添加一个将文本项添加到字典中会为文本添加键/值对(我无法放入字典或数组)。

在“获取内容”操作中列出各个标签

我唯一想到的其他解决方法是执行“ For Each”操作,将每个选定标签保存为单独的变量,然后将每个标签传递到tags的最终数组项中。

将每个变量添加到单独的变量中以在tags数组下以文本形式列出似乎很麻烦和脆弱。如果可以使用“动态变量”,则可以在原处使用tags,其中ChosenTag_n是所选标签的索引。目前,示例已在biiiig嵌套的“ If”操作中硬编码(哦,不)。

从好的方面来说,这确实有效:

n

...但是,如果“选择的项目”> "tags": [ "bar1","bar3" ] 个变量的数量,它将“丢失数据”。我还刚刚在单个变量中创建了自己的数组,并嵌套了“ If”语句。双重感叹。

可能的解决方案和TL; DR

理想情况下,应该将从“从列表中选择”操作中选择的(多个)项目格式化为数组,并且“获取内容”操作应按预期接受并解析该数组。

我试图避免创建或写入文件,并避免创建自己的自定义“请求正文”。

我只在同一主题(现已存档)上找到this one other post (Reddit)

快捷方式是否无法正确解析数组/这是iOS 14可以解决和修复的问题,还是(很可能)我是马铃薯人,并且在格式化数组时缺少某些关键信息?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...