影刀RPA新手教程:JSON完全指南——什么是JSON、怎么读、怎么写、怎么取里面的数据

0 阅读6分钟

影刀RPA新手教程:JSON完全指南——什么是JSON、怎么读、怎么写、怎么取里面的数据

你好,我是林焱。

今天我们聊JSON。

JSON是一种数据格式,用来存和传数据。

在影刀里,经常要处理JSON,比如从API接口拿到数据。

JSON就像快递单

用生活中的东西来类比,JSON就像一张快递单。

快递单上有收件人姓名、电话、地址。

每一项都有一个名称和一个值。

JSON也是一样:每一组数据,都有一个名字和一个值。

比如:{"姓名": "张三", "年龄": 25}

在这里插入图片描述

这就是一个JSON,里面有两组数据。

案例主线:解析API返回的JSON

我们今天做的案例是:

模拟从一个API接口拿到JSON数据。

JSON里面存着用户名和年龄。

我们把这两个值取出来,打印到日志里。

JSON的基本格式

JSON的基本格式是用大括号 {} 包起来。

里面是一pair一对的键值对,键和值之间用冒号 : 隔开。

不同组之间用逗号 , 隔开。

比如:

{
  "用户名": "张三",
  "年龄": 25
  ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f75d41fc559d4a87a3454405f04415ec~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5p6X54SxUlBB:q75.awebp?rk3s=f64ab15b&x-expires=1786183804&x-signature=vGB6HKZQ35MlBeBWukr8gNwhcW4%3D)

}

这就是一个最简单的JSON。

创建JSON字符串变量

打开影刀RPA,新建一个应用。

先创建一个字符串变量,用来存JSON。

点上方工具栏里的"变量"按钮。

变量名称填"JSON数据",变量类型选"字符串"。

默认值填:{"用户名": "张三", "年龄": 25}

点确定。

[video(video-Iv30m8Nl-1782550886104)(type-csdn)(url-live.csdn.net/v/embed/525…)]

我当时踩过这个坑

我第一次写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里还可以有数组,就是一堆值排在一起。

[video(video-1x4Tq9s8-1782550892698)(type-csdn)(url-live.csdn.net/v/embed/524…)]

用中括号 [] 表示。

比如:{"爱好": ["读书", "运动", "音乐"]}

在这里插入图片描述

这里的"爱好"的值,是一个数组,里面有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数据|零基础教程|数据格式


作者:林焱