影刀RPA新手教程:JSON完全指南——什么是JSON、怎么读、怎么写、怎么取里面的数据
你好,我是林焱。
今天我们聊JSON。
JSON是一种数据格式,用来存和传数据。
在影刀里,经常要处理JSON,比如从API接口拿到数据。
JSON就像快递单
用生活中的东西来类比,JSON就像一张快递单。
快递单上有收件人姓名、电话、地址。
每一项都有一个名称和一个值。
JSON也是一样:每一组数据,都有一个名字和一个值。
比如:{"姓名": "张三", "年龄": 25}。
这就是一个JSON,里面有两组数据。
案例主线:解析API返回的JSON
我们今天做的案例是:
模拟从一个API接口拿到JSON数据。
JSON里面存着用户名和年龄。
我们把这两个值取出来,打印到日志里。
JSON的基本格式
JSON的基本格式是用大括号{}包起来。
里面是一pair一对的键值对,键和值之间用冒号:隔开。
不同组之间用逗号,隔开。
比如:
{ "用户名": "张三", "年龄": 25  }这就是一个最简单的JSON。
创建JSON字符串变量
打开影刀RPA,新建一个应用。
先创建一个字符串变量,用来存JSON。
点上方工具栏里的"变量"按钮。
变量名称填"JSON数据",变量类型选"字符串"。
默认值填:{"用户名": "张三", "年龄": 25}。
点确定。
店群矩阵自动化突破运营极限!
我当时踩过这个坑
我第一次写JSON的时候,键没有加引号。
我写成{用户名: "张三"},结果报错了。
后来我才知道:JSON里的键,必须用英文双引号包起来。
而且整个JSON里的引号,都必须是英文引号,不能是中文引号。
这个坑我很长时间都记着。
把JSON字符串转成字典
JSON本质上是一个字符串,但我们要把它当成数据结构来用。
在影刀里,有个指令叫"JSON解析",可以把JSON字符串转成字典。
这个指令在"JSON"分类里。
双击它,放到流程编辑区。
配置JSON解析指令
指令放好之后,看右边的属性设置区。
第一个要填的是"JSON字符串":填JSON数据(这是我们的变量名)。
第二个要填的是"保存到变量":新建一个字典变量,叫"解析结果"。
运行之后,"解析结果"这个字典里,就存着JSON里的所有数据了。
从解析结果里取值
JSON解析成了字典,取值就和字典一样了。
用"获取字典值"指令。
目标字典选"解析结果"。
键填"用户名",就能取到"张三"。
键填"年龄",就能取到25。
把字典转回JSON字符串
有时候,我们需要把字典转回JSON字符串。
比如修改了数据之后,要存回文件或者发给API。
影刀里有个指令叫"对象转JSON字符串",在"JSON"分类里。
它的作用是:把字典或者列表,转成JSON格式的字符串。
配置对象转JSON指令
拖一个"对象转JSON字符串"指令到流程编辑区。
要转换的对象:填字典变量名(比如"解析结果")。
保存到变量:新建一个字符串变量,叫"新JSON数据"。
运行之后,"新JSON数据"里就存着转换后的JSON字符串了。
JSON里嵌套JSON
JSON里可以嵌套JSON。
就像快递单上,地址那一项,又可以细分为省、市、区、街道。
比如:
{ "用户名": "张三", "年龄": 25, "地址": { "省": "广东", "市": "深圳" } }这种JSON,解析出来之后,里面的值可能又是一个字典。
取嵌套JSON里的值
如果JSON里嵌套了JSON,解析出来之后,取值要分两步。
第一步:先取出外层的值,得到一个字典。
比如从"解析结果"里取"地址",得到一个字典。
第二步:再从那个字典里取里层的值。
比如从"地址"字典里取"市",得到"深圳"。
我当时踩过这个坑
我第一次处理嵌套JSON的时候,想一步取到里层的值。
我写成解析结果["地址"]["市"],结果报错了。
后来我才知道:要分两步取,先取外层,再取里层。
或者,用"JSON路径"的方式来取(后面会讲)。
JSON路径(JSONPath)
如果想要更灵活地取JSON里的值,可以用JSONPath。
JSONPath是一种查询语言,用来从JSON里提取数据。
比如$.用户名表示取顶层JSON里"用户名"的值。
$.地址.市表示取"地址"里面"市"的值。
使用JSONPath取值
影刀里有个指令叫"JSONPath取值",在"JSON"分类里。
它的参数是:JSON字符串、JSONPath表达式。
比如JSON字符串填JSON数据,JSONPath填$.用户名。
结果就是"张三"。
JSON数组(列表)
JSON里还可以有数组,就是一堆值排在一起。
temu店群自动化报活动案例
用中括号[]表示。
比如:{"爱好": ["读书", "运动", "音乐"]}。
这里的"爱好"的值,是一个数组,里面有3个元素。
解析出来之后,"爱好"对应的值是一个列表。
取JSON数组里的元素
如果JSON里有一个数组,解析出来之后,取值就和列表一样了。
用"获取列表元素"指令。
比如从"解析结果"里取"爱好",得到一个列表。
再从那个列表里取位置0的元素,得到"读书"。
生成JSON字符串
有时候,我们需要自己生成JSON字符串。
最笨的方法是:用字符串拼接,把键和值拼成JSON格式。
但这种方法容易出错,我不推荐。
更好的方法是:先创建一个字典,把数据存进去。
然后用"对象转JSON字符串"指令,把字典转成JSON。
案例完整步骤
我们来把案例完整做一遍:
第一步:创建字符串变量"JSON数据",值是{"用户名": "张三", "年龄": 25}。
第二步:用"JSON解析"指令,把"JSON数据"转成字典,存到"解析结果"里。
第三步:用"获取字典值"指令,从"解析结果"里取"用户名",打印到日志。
第四步:用"获取字典值"指令,从"解析结果"里取"年龄",打印到日志。
完成。
home.linyan.cloud
关于JSON的处理,常用的就是这些。
解析、取值、生成、JSONPath。
掌握了这些,你就能处理大部分和JSON有关的需求了。
如果你想看更多教程,可以访问 home.linyan.cloud。
12大核心模块 coverage
这篇文章覆盖了以下核心模块:
- JSON字符串创建:使用"变量"按钮创建字符串变量存JSON
- JSON解析:使用"JSON解析"指令把JSON转成字典
- 字典取值:使用"获取字典值"指令从解析结果里取值
- 对象转JSON:使用"对象转JSON字符串"指令
- JSONPath取值:使用"JSONPath取值"指令
- 嵌套JSON处理:分步取外层和内层的值
内容标签
影刀RPA|JSON处理|数据解析|API数据|零基础教程|数据格式
作者:林焱