快捷指令怎么解析JSON:从入门到实用技巧
在数字化生活日益便捷的今天,苹果的“快捷指令”(Shortcuts)已成为许多用户提升效率的神器,无论是自动化处理日常任务,还是整合不同应用的数据,JSON(JavaScript Object Notation)作为轻量级的数据交换格式,经常出现在各种API接口、数据源中,不少用户在使用快捷指令时,会遇到“如何解析JSON数据”的难题——明明获取到了JSON字符串,却不知道如何提取其中的具体信息,本文将从基础概念到实操步骤,详细拆解“快捷指令怎么解析JSON”,让你轻松这一实用技能。
先搞懂:什么是JSON?为什么快捷指令需要解析它?
要解析JSON,首先得明白它是什么,JSON是一种结构化的文本数据格式,采用“键值对”(Key-Value Pair)的方式组织数据,类似于字典或表格,易于人阅读,也便于机器解析和生成,一段简单的JSON数据可能是这样的:
{
"name": "张三",
"age": 25,
"isStudent": false,
"courses": ["数学", "英语", "物理"],
"address": {
"city": "北京",
"district": "海淀区"
}
}
这段数据包含了字符串(name)、数字(age)、布尔值(isStudent)、数组(courses)甚至嵌套的对象(address),而在快捷指令中,我们常常需要从网页API、文件读取、其他应用分享等渠道获取这类JSON数据——比如获取天气API返回的JSON信息,或解析导出的联系人数据,如果不解析,JSON只是一段无法直接使用的文本字符串;只有解析后,才能提取其中的“键”对应的“值”,用于后续操作(如显示通知、创建事件、填充表单等)。
核心工具:快捷指令中的“JSON”操作动作
快捷指令官方提供了专门的“JSON”操作动作,是解析JSON的核心工具,你可以在“操作库”中搜索“JSON”,找到两个最常用的动作:“解析 JSON” 和 “生成 JSON”。“解析 JSON”是我们本文的重点,作用是将JSON字符串转换为快捷指令可识别的“字典”(Dictionary)类型数据,方便后续提取字段。
step-by-step:在快捷指令中解析JSON的完整流程
假设我们的目标是:获取一段JSON字符串,提取其中的“name”和“city”字段,并显示在通知中,以下是具体步骤:
第一步:获取JSON字符串
解析JSON的前提是“有JSON字符串可解析”,常见的获取方式包括:
- 从URL获取:使用“获取URL内容”动作(需联网),访问返回JSON数据的API接口(如天气API、新闻API)。
- 从文本输入:手动输入JSON字符串,或从剪贴板、其他应用分享文本到快捷指令。
- 从文件读取:使用“从文件读取”动作,读取本地存储的.json或.txt文件(文件内容需为JSON格式)。
这里以“从文本输入”为例,我们先创建一个“输入文本”动作,输入前面示例的JSON字符串:
{
"name": "张三",
"age": 25,
"isStudent": false,
"courses": ["数学", "英语", "物理"],
"address": {
"city": "北京",
"district": "海淀区"
}
}
第二步:添加“解析 JSON”动作
在“输入文本”动作后,添加“操作库”中的“解析 JSON”动作,这个动作有两个参数:
- JSON:需要解析的JSON字符串,这里连接“输入文本”的输出结果(即上一步输入的JSON字符串)。
- 错误处理:可选参数,如果JSON格式无效(如缺少括号、引号错误),可设置“显示错误”或“跳过”等操作,避免快捷指令中断。
添加后,快捷指令会自动尝试将JSON字符串转换为字典,如果JSON格式正确,“解析 JSON”动作的输出结果会显示一个字典图标,点击可预览解析后的数据结构,与原始JSON一一对应(如“name”键对应“张三”,“address”键对应另一个嵌套字典)。
第三步:提取字典中的字段值
解析后的JSON数据变成了“字典”,快捷指令中可以通过“从字典获取值”动作提取指定字段,操作方法:
- 添加“从字典获取值”动作,参数“字典”连接“解析 JSON”的输出结果。
- 参数“键”输入你想要提取的字段名,如“name”(注意:键名需与JSON中的完全一致,包括大小写和特殊字符)。
- 重复此步骤,提取其他字段,如“address”中的“city”(嵌套字段需分步提取:先提取“address”字典,再从该字典中提取“city”)。
- 提取“name”:键输入“name”,输出结果为“张三”。
- 提取“city”:先提取“address”键(得到嵌套字典),再对该字典执行“从字典获取值”,键输入“city”,输出结果为“北京”。
第四步:使用提取的数据
提取字段值后,就可以根据需求使用这些数据了。
- 显示通知:添加“显示通知”动作,“标题”输入“用户信息”,“内容”输入“姓名:”+“从字典获取值(name)”的结果+“,城市:”+“从字典获取值(city)”的结果。
- 创建备忘录:使用“创建备忘录”动作,将提取的字段值作为标题或内容。
- 填充表单:在打开网页或应用时,将提取的数据填入对应输入框。
完整快捷指令示例流程:
输入文本(JSON字符串) → 2. 解析JSON → 3. 从字典获取值(键:name) → 4. 从字典获取值(键:address) → 5. 从字典获取值(键:city,连接上一步address的输出) → 6. 显示通知(内容:姓名+XX,城市+XX)。
常见问题与解决技巧
JSON格式无效,解析失败?
原因:JSON字符串可能存在语法错误,如:
- 缺少大括号或方括号
[]; - 键名未用双引号包围(如
name: "张三"应为"name": "张三"); - 字符串值未用双引号,或使用了单引号;
- 逗号使用错误(如最后一个键值对后有多余逗号)。
解决:
- 手动检查JSON字符串,或使用在线JSON格式化工具(如JSONLint)验证格式;
- 如果JSON来自网络或文件,确保编码正确(快捷指令默认支持UTF-8)。
如何处理嵌套JSON(多层字典/数组)?
JSON数据常存在嵌套结构,如示例中的“address”是嵌套字典,“courses”是数组,处理方法:
- 嵌套字典:分步提取,先提取外层键(如“address”),得到子字典后,再从子字典中提取目标键(如“city”)。
- 数组:使用“从列表获取项目”动作(数组在快捷指令中表现为“列表”),例如提取“courses”中的第一个科目:键输入“courses”,再用“从列表获取项目”的“索引”设为0(列表索引从0开始)。
如何处理动态键名或不确定的JSON结构?
如果JSON的键名是动态的(如不同用户返回的键名不同),可先通过“遍历字典”动作获取所有键名,再通过条件判断提取目标值。
- 添加“遍历字典”动作,连接“解析 JSON”的输出,得到所有键的列表;
- 用“如果条件”判断列表中是否包含目标键名(如“name”),再提取对应值。
解析后数据无法直接使用?
解析JSON得到的字典值可能是字符串、数字、布尔值等类型,若需类型转换(如数字转为字符串),可使用以下动作:
- 数字转字符串:“格式化数字”→选择“设为文本”;
- 字符串转数字:“文本转为数字”;
- 布尔值判断:直接在“如果条件”中使用“值为真”或“值为假”。
实战案例:解析天气API的JSON数据
假设我们要获取“和风天气”API返回的JSON数据(需申请API Key,此处简化流程),提取“城市名”和“当前温度”,并显示通知。
步骤:
- 获取URL内容:添加“获取URL内容”动作,URL输入
https://api.qweather.com/v7/weather/now?location=101010100&key=你的API_KEY(替换为你的实际API Key)。 - 解析JSON:添加“解析 JSON”动作,连接“获取URL内容”的输出。
- 提取字段:
提取城市名:JSON中“location



还没有评论,来说两句吧...