Keyboard Maestro的WIKI写得实在是简略,相关的论坛中的讨论也不是很多。

我想要实现的功能很简单:

根据用户填写的表单,获取了多个变量值,将变量名、变量值、标题组成一个对象,将多个对象写入JSON中 看文字描述很抽象,直接上图!

↑这是用户要填的数据。

[
 {
  "名称": "Hugo博客",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "小红书",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "B站",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "Youtube",
  "是否选择": "",
  "任务期限": "3"
 }
]

↑这个是要得到的数据。


WIKI中关于JSON的内容相当简略,刚开始完全没有搞懂VariablesJSON与相关的Set Variables to JSONSet JSON ValueSet Variable to Text之间的关系。

经过仔细研究,终于搞定了!最终的解决方式如下:

  1. 利用Set Variable to Text将多个变量,按照JSON的格式写入指定变量中

需要注意的是:

  • 要按照JSON的格式来写,由于我希望按照输入的顺序进行索引,所以这里写成了[{},{}]的数组形式,每个对象都会成为数组的一个元素,它们的顺序就会保持一致。当你需要访问特定对象时,可以通过数组的索引来获取。

  • 要注意核实标点是否是英文!

  • 键名应该使用双引号 " 包裹。

  1. 调用数据时可以有多种方式:
  • %Variable%LocalJSON%得到是文本,如下:
[
 {
  "名称": "Hugo博客",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "小红书",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "B站",
  "是否选择": "1",
  "任务期限": "3"
 },
 {
  "名称": "Youtube",
  "是否选择": "",
  "任务期限": "3"
 }
]
  • %JSONValue%LocalJSON%得到的JSON数据,如下:
[{"任务期限":"3","名称":"Hugo博客","是否选择":"1"},{"任务期限":"3","名称":"小红书","是否选择":"1"},{"任务期限":"3","名称":"B站","是否选择":"1"},{"任务期限":"3","名称":"Youtube","是否选择":""}]
  • %JSONValue%LocalJSON.1%得到的是单个对象,如下:
{"任务期限":"3","名称":"Hugo博客","是否选择":"1"}
  • %JSONValue%LocalJSON.1.名称%得到的是单个元素,如下:
Hugo博客

总结: 以JSON的格式写入变量中,用JSON的方式调用即可!特别要注意JSON的格式要规范!