接口json参数形式
1、 接口json参数形式:
{"code": "200","data": {"bz": "","fxjg": [{"abcd": ["/1/1.mp4","/1/2.mp4","/1/3.mp4","/1/4.mp4","/1/5.mp4"]},{"efgh": []}],"zhuj": "202204220000000001","ertf": 5,},"message": "识别成功","qqshu": 4465765,"signature": "周杰伦"
}
如上,是调用第三方接口后返回来的json数据,以上数据形式如下分析:
①数据的整体(最外层的大括号)可以封装成一个大的DTO用来接收调用接口成功后返回来的数据。DTO包含的成员变量就是大括号中的各项,如下:
@Data
@Accessors(chain = true)
public class GetParamterDTO implements Serializable {private String code;private String message;private ProjectVideoDto data;private Long qqshu;private String signature;
}
②实体中又包含实体:可以看到,大参数实体中,又包含了一个小的实体data,所以此时需要继续创建一个实体来承接data并把这个实体封装到大实体GetParamterDTO中:
@Data
@Accessors(chain = true)
public class ProjectVideoDto implements Serializable {private String bz;private String zhuj;private String ertf;private List<Map<String, List>> fxjg;}
注意:①无论是调用接口传参还是接收接口返回的数据,起的变量名一定要和参数中的Key值保持一致
②注意data参数中的fxjg,在返回的参数data中,他的格式是这样的:
"fxjg": [{"abcd": ["/1/1.jpg","/1/2.jpg","/1/3.jpg","/1/4.jpg","/1/5.jpg"]},{"efgh": []}],
在实体类中的类型定义是:
private List<Map<String, List>> fxjg;
如下图所示,方括号代表数组,在Java中则用List表示,数组中的每个元素是json格式的数据,即Map形式,而Map中,key是字符串,value又是一个数组,所以最后的实体类定义形式如上所示。
2、多层结构嵌套json
接口json参数示例:
如上面表格示例,共有4个表格,因此,整体上有4个实体定义结构。
其中,范围最大的是第一个data参数数据,共有3个参数信息,其中sfzxx是一个json数组,也就是第二个表格;
同理,第二个表格中也包含了一个json数组jtzz,对应第三个表格;
dfxx对应第四个表格。
调用接口的传参示例如下:
{//最外层DTO,对应的第一个表格data参数"xh": "679841fvgwe4+9","zy": "演员","sfzxx": [{"name": "刘亦菲","csrq": "1985年3月","jg": "籍贯北京市朝阳区""jtzz": [{"sheng": "安徽省","shi": "美女市","xian": "美女县","dfxx": [{"lb": "类别美女县","rksl": "200000"},{"lb": "类别美女县","rksl": "200000"},{"lb": "类别美女县","rksl": "200000"}]},{"sheng": "安徽省","shi": "美女市","xian": "美女县","dfxx": [{"lb": "类别美女县","rksl": "200000"},{"lb": "类别美女县","rksl": "200000"}]},]},{"name": "刘亦菲","csrq": "1985年3月","jg": "籍贯北京市朝阳区""jtzz": [{"sheng": "安徽省","shi": "美女市","xian": "美女县","dfxx": [{"lb": "类别美女县","rksl": "200000"},{"lb": "类别美女县","rksl": "200000"}]}]},{"name": "刘亦菲","csrq": "1985年3月","jg": "籍贯北京市朝阳区""jtzz": [{"sheng": "安徽省","shi": "美女市","xian": "美女县","dfxx": [{"lb": "类别美女县","rksl": "200000"},{"lb": "类别美女县","rksl": "200000"}]}]}]
}
java实体类定义:
/*** 最外层data参数DTO实体,对应第一个表格*/
@Data
public class DataDTO implements Serializable {private String xh;//序号private String zy;//职业private List<SfzxxDTO> sfzxx;//Json数组,身份证信息}*** 身份证信息实体DTO,对应第二个表格*/
@Data
public class SfzxxDTO implements Serializable {private String name;//姓名private String csrq;//出生日期private String jg;//籍贯private List<JtzzDTO> jtzz;//Json数组,家庭住址}/*** Json数组,家庭住址,对应第三个表格*/
@Data
public class JtzzDTO implements Serializable {private String sheng;//省private String shi;//市private String xian;//县private List<DfxxDTO> dfxx;//Json数组,地方信息}/*** 地方信息实体DTO,对应第4个表格*/
@Data
public class DfxxDTO implements Serializable {private String lb;//类别private Long rksl;//人口数量}
3、内部类的使用
json数据样例1:
{"responseInfo":[{"code":"200","result":"success"}],"requireWords":[{"pathType":"httpurl","wordsDetails":[{"wordIdType":"fergf","wordStatus":"cebri"}]}]
}
java代码:
package com.example.domain;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;import java.util.List;@Getter
@Setter
@NoArgsConstructor
public class BaseResponse {private List<ResponseInfo> responseInfo;@Getter@Setter@NoArgsConstructor@AllArgsConstructorpublic static class ResponseInfo {private String code;private String result;}
}
import lombok.*;
import java.util.List;@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseData extends BaseResponse {private List<RequireWords> requireWords;@Data@AllArgsConstructor@NoArgsConstructorpublic static class RequireWords {private String pathType;private List<WordsDetails> wordsDetails;}@Data@NoArgsConstructor@AllArgsConstructorpublic static class WordsDetails {private String wordIdType;private String wordStatus;}
}
json数据样例2:
{"fixFlowId":"hytjtkytuk","documentDetailInfo":{"docIdCharacter":"645","proCharacter":"freiuwgwe","appLei":"H","appId":"654758@#$","docData":[{"binData":"64567","docFor":"trh6786"}]}
}
java代码:
import lombok.*;
import java.util.List;@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseData {private String fixFlowId;private DocumentDetailInfo documentDetailInfo;@Data@NoArgsConstructor@AllArgsConstructorpublic static class DocumentDetailInfo {private String docIdCharacter;private String proCharacter;private String appLei;private String appId;private List<DocData> docData;}@Data@NoArgsConstructor@AllArgsConstructorpublic static class DocData {private String binData;private String docFor;}
}
接口json参数形式相关推荐
- postman参数化--上一个接口返回的数据作为下一个接口的参数
postman是测试接口经常使用的工具,它是一个很强大的工具.那么在测试中若是存在接口依赖的现象改怎么测试呢? 在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为 ...
- webservice接口使用json参数
接到一个对接json格式参数的webservice接口的任务,很久没做过webservice相关并且以前也只做过xml格式参数,所以对此做了一些了解. 1.定义一个webservice服务端接口 1. ...
- python接口自动化pdf悠悠_python接口自动化13-data和json参数傻傻分不清【悠悠】
https://www.cnblogs.com/yoyoketang/p/7231384.html 前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参 ...
- 使用PostMan工具测试spring boot接口的若干请求参数形式
不同接收请求参数的方式: 1.使用raw发送参数 形式1: @RequestBody User user接收属性,自动封装到user对象中 形式2 @RequestBody Map<String ...
- 接口入参形式_极光小课堂|手把手教你做接口测试
接口测试是项目测试过程中非常重要的一环,测试的对象是接口,所以提早介入测试,对代码逻辑进行全面验证,就会更早的发现程序的问题.同时,接口测试比UI测试效率更高,并且更容易验证极端和异常的情况. 那么什 ...
- SpringMVC接受JSON参数详解及常见错误总结我改
SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...
- 淘宝商品详情页视频接口(视频参数,sku属性参数,销量参数等页面上的数据均可以采集,支持高并发请求)
淘宝商品详情页视频接口(视频参数,sku属性参数,销量参数等页面上的数据均可以采集,支持高并发请求)接口代码教程如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须 ...
- 浅析web api的json参数校验
前言 以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型. 正文 下面从php.golang两个语言在json的使用上做一些说明. php的处理json的两个方法名叫: ...
- python 字典字符串转字典——urllib.request.Request发送get,post请求,发送json参数
1.eval方法即可[字典字符串转字典] file_content = eval(file_content) 2.urllib.request.Request发送post请求,发送json参数 fro ...
最新文章
- jQuery,data()方法学习
- 你需要培养科研必备的10项能力
- 在Kotlin中 使用js 函数
- mysql pydev_pydev-python 链接mysql数据库(mac系统)
- 自然语言生成(NLG)的好处是什么,它如何影响BI?
- react-native 发送接收“广播”
- websphere Error 404:SRVE0190E: File not found: index.action
- Ubuntu报错:E: The repository http://ppa.launchpad.net/fcitx-team does not have a Release file.
- PTA——堆中的路径
- 高通QFIL9008端口刷机报错问题
- 深度解读 RocketMQ 存储机制
- linux下使用PulseAudio获取扬声器的音量和是否静音
- 无标号有根树计数与无标号无根树计数
- win10卸载软件_删除win10全家桶,让你的电脑速度飞起来
- Android中使用Room(ORM关系映射框架)对sqllite数据库进行增删改查
- 电商API:淘宝/天猫获取sku详细信息
- 前端工程师 - 面试题 (最新,最全)
- 英式音标26字母发音规律
- 复古汉字_30个时髦的WordPress复古主题
- 网间互联-国家级互联网骨干直联点
热门文章
- excel图文教程:九九乘法表的制作方法
- 【Hive笔记】练习hive操作
- matlab的newff语句,matlab newff使用(引用自huangjunmei0805)
- javascript读取excel中的时间的格式问题
- Python pandas 保存Excel自动调整列宽的方法及示例代码
- Git (3)—IDEA集成Git和GitHub、Gitee的简介
- http协议中有关http头的技术资料
- wap微信登录php,请教一个wap2app微信登录的问题
- 咚咚咚————【封装驱动】MLX90614医用级红外温度传感器,分享交流自己编写的程序。
- Linux下创建FTP用户和密码(日常操作)