从AppleScript记录中获取条目:访问多值键productoption
如何访问AppleScript记录中来自JSON数组的条目
看起来你已经成功把JSON转成AppleScript记录了,单值键的访问很顺畅,但遇到数组类型的productoption就卡壳了对吧?其实很简单——JSON里的数组在AppleScript里会被转换成列表(list),所以你只需要用AppleScript列表的操作方式来访问它就行。
先回顾下你的JSON转换后的记录结构:
-- 转换后的myJSON记录大致是这样的 set myJSON to {height:200.0, width:300.0, productoption:{"fabric", "rectangle", "roll"}, id:33, product:{"backdrop"}}
接下来给你几种常用的访问方式:
1. 获取整个选项列表
直接通过键名拿到完整的列表:
set allProductOptions to productoption of myJSON -- allProductOptions 就是 {"fabric", "rectangle", "roll"} 这个列表
2. 访问单个选项
AppleScript的列表索引是从1开始的,所以要取第N个元素,用item N:
-- 取第一个选项 "fabric" set firstOption to item 1 of productoption of myJSON -- 取第二个选项 "rectangle" set secondOption to item 2 of productoption of myJSON -- 取第三个选项 "roll" set thirdOption to item 3 of productoption of myJSON
3. 遍历所有选项
如果要逐个处理每个选项,可以用repeat循环遍历列表:
repeat with currentOption in productoption of myJSON -- 这里可以对每个选项做操作,比如打印到日志 log "当前选项:" & currentOption end repeat
4. 检查某个选项是否存在
可以用is in判断元素是否在列表里:
if "fabric" is in productoption of myJSON then display dialog "找到了fabric选项!" end if
本质就是记住:JSON数组 → AppleScript列表,所有AppleScript针对列表的操作都能用上,和你访问单值键的逻辑是连贯的,只是多了一层列表的处理而已。
内容的提问来源于stack exchange,提问作者TimmyL
相关产品推荐
相关产品推荐

