自动化测试 如何快速提取Json数据
Json作为一种轻量级的交换数据形式,由于其自身的一些优良特性比如包含有效信息多,易于阅读和解析。
使用Json的场景也很多,比如读取解析系列化的Json格式的数据,我们需要将一个Json的字符串解析成我们想要的对象或者提取我们需要的信息。
一些工具库比如fastjson或者gons转换为我们想要的对象。
比如,解析一个Person对象。
Step 1. 这时候我们需要声明一个与此Json能够映射的对象
Step 2. 解析json数据
Step 3. 用解析后的对象做后续的业务处理
但是,有时候我们根本用不上这个对象,只想提取出需要的信息,比如插入到数据库,或者提取出一个字段作为一个判定标识。这时候,我们可以通过如下介绍的方式来实现即可,不需要通过新建对象的方式。
通过FastJson实现
FastJson是阿里巴巴发布的一个Json处理工具包,其特点就是解析快,效率高,而且支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省等。
可以借助FastJson我们如何提取出我们想要的信息
通过静态方法parse,将字符串解析为一个Object对象
将返回的jsonObj强转为一个Map集合
在map集合中获取需要的信息,比如提取出field1对应的value1
解析出来的Object对象其实就是一个map集合,这里的filed1就是map中的key,value1就是map集合中的value
对于像fieldContext本身就是一个嵌套的map集合,我们可以从fieldContext的值中再解析拆为map集合
显然,我们成功的获取到了想要提取的字段信息,同时也没有新建与json对应的对象。
通过Gson实现
GSON是Google开发的Java API,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。
相比较于FastJson,在实现我们前面提到的提取信息的实现细节上会有一些不同。
创建一个Gson对象
调用Gson的fromJson方法将字符串直接解析成HashMap类型,这一点要比FastJson来的更加快捷
后面的用法与使用FastJson解析数据一致,也是从Map中提取对应字段的值
最终得到的结果如下
以上主要是针对如何快速从Json字符串中提取需要信息的场景给出的解决思路,分别就当前流行的FastJson和Gson给出示例代码,后面有机会再详细说说有关解析Json的具体实例和细节。
自动化测试 如何快速提取Json数据的更多相关文章
- 利用es6解构赋值快速提取JSON数据;
直接上代码 { let JSONData = { title:'abc', test:[ { nums:5, name:'jobs' }, { nums:11, name:'bill' } ] } l ...
- jmeter之beanshell提取json数据
Jmeter BeanShell PostProcessor提取json数据 假设现有需求: 提取sample返回json数据中所有name字段对应的值,返回的json格式如下: {“body”:{“ ...
- 合并cookie,提取json数据
发送的第3个请求需要前两个请求的cookie,需要对cookie进行合并 发送的请求数据来自于json数据中的某个键值. 这里是删除所有的对话主题目录,每一个目录有一个id,发起删除对话主题目录的请求 ...
- Jmeter BeanShell PostProcessor提取json数据
需求:提取sample返回json数据中所有name字段值,返回的json格式如下: {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}} jmeter中 ...
- VS快速生成JSON数据类
1.复制Json数据 2.
- 教你不编程快速解析 JSON 数据
JSON 是一种轻量级的,不受语言约束的数据存储格式,大部分编程语言都可以解析它,并且对编程人员也十分友好.我们在进行通讯/数据交互时,非常经常用到 JSON 格式. 但是,我们在进行数据存储的时候, ...
- js提取JSON数据中需要的那部分数据
var data =[ { name: "程咬金",sex:"1",age:26 }, { name: "程才",sex:"0&q ...
- 使用 JsonPath 完成接口自动化测试中参数关联和数据验证(Python语言)
背景: 接口自动化测试实现简单.成本较低.收益较高,越来越受到企业重视 restful风格的api设计大行其道 json成为主流的轻量级数据交换格式 痛点: 接口关联 也称为关联参数.在应用业务接口中 ...
- 爬虫json数据的处理
在爬网页的过程中,最喜欢遇到的就是json数据接口,省了不少麻烦,但是json数据也有多种格式. 类型一:标准的json result = json.loads(html.text),将str转成py ...
随机推荐
- CAP理论之思考
分布式系统的最大难点就是各个节点如何保持一致.最近我在工作中就遇到这样的问题,不同节点之间,彼此通过API,进行通信,交互数据,但有些服务节点存在延迟等问题,导致我看到的并不是实时的数据,以及系统更新 ...
- kafka之二:手把手教你安装kafka2.8.0(绝对实用)
前面分享了kafka的基本知识,下面就要对kafka进行实操,先看如何安装. kafka需要zookepper的支持,所以要安装kafka需要有zookeeper的环境,zookeeper安装请参见& ...
- Docker学习(11) Dockerfile指令
Dockerfile指令 指令格式 FROM MAINTAINER RUN EXPOSE CMD ENTRYPOINT ADD COPY VOLUME WORKDIR ENV USER ONBUILD ...
- 深入浅出Promise
Abstract Promise的意思是承诺(在红宝书中翻译为期约),新华字典:(动)对某项事务答应照办. Promise最早出现在Commn JS,随后形成了Promise/A规范. Promise ...
- TVM性能评估分析(六)
TVM性能评估分析(六) Figure 1. The workflow of development PC, compile, deploy to the device, test, then mo ...
- CVPR2020论文解析:视频语义检索
CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...
- 摄像头定位:ICCV2019论文解析
摄像头定位:ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.the ...
- YOLOV4知识点分析(二)
YOLOV4知识点分析(二) 6. 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org ...
- CloudHub概述
CloudHub概述 CloudHub CloudHub是cloudcore的一个模块,是Controller和Edge端之间的中转.它同时支持基于websocket的连接以及QUIC协议访问.Edg ...
- spring如何集成第三方框架? 比如mybatis
实体Bean的创建: 1: 基于class构建, 2: 构造方法构建 3: 静态工厂方法创建 4: FactoryBean构建 spring如何集成第三方框架? 比如mybatis 在mybatis中 ...