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参数形式相关推荐

  1. postman参数化--上一个接口返回的数据作为下一个接口的参数

    postman是测试接口经常使用的工具,它是一个很强大的工具.那么在测试中若是存在接口依赖的现象改怎么测试呢? 在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为 ...

  2. webservice接口使用json参数

    接到一个对接json格式参数的webservice接口的任务,很久没做过webservice相关并且以前也只做过xml格式参数,所以对此做了一些了解. 1.定义一个webservice服务端接口 1. ...

  3. python接口自动化pdf悠悠_python接口自动化13-data和json参数傻傻分不清【悠悠】

    https://www.cnblogs.com/yoyoketang/p/7231384.html 前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参 ...

  4. 使用PostMan工具测试spring boot接口的若干请求参数形式

    不同接收请求参数的方式: 1.使用raw发送参数 形式1: @RequestBody User user接收属性,自动封装到user对象中 形式2 @RequestBody Map<String ...

  5. 接口入参形式_极光小课堂|手把手教你做接口测试

    接口测试是项目测试过程中非常重要的一环,测试的对象是接口,所以提早介入测试,对代码逻辑进行全面验证,就会更早的发现程序的问题.同时,接口测试比UI测试效率更高,并且更容易验证极端和异常的情况. 那么什 ...

  6. SpringMVC接受JSON参数详解及常见错误总结我改

    SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...

  7. 淘宝商品详情页视频接口(视频参数,sku属性参数,销量参数等页面上的数据均可以采集,支持高并发请求)

    淘宝商品详情页视频接口(视频参数,sku属性参数,销量参数等页面上的数据均可以采集,支持高并发请求)接口代码教程如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须 ...

  8. 浅析web api的json参数校验

    前言 以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型. 正文 下面从php.golang两个语言在json的使用上做一些说明. php的处理json的两个方法名叫: ...

  9. python 字典字符串转字典——urllib.request.Request发送get,post请求,发送json参数

    1.eval方法即可[字典字符串转字典] file_content = eval(file_content) 2.urllib.request.Request发送post请求,发送json参数 fro ...

最新文章

  1. jQuery,data()方法学习
  2. 你需要培养科研必备的10项能力
  3. 在Kotlin中 使用js 函数
  4. mysql pydev_pydev-python 链接mysql数据库(mac系统)
  5. 自然语言生成(NLG)的好处是什么,它如何影响BI?
  6. react-native 发送接收“广播”
  7. websphere Error 404:SRVE0190E: File not found: index.action
  8. Ubuntu报错:E: The repository http://ppa.launchpad.net/fcitx-team does not have a Release file.
  9. PTA——堆中的路径
  10. 高通QFIL9008端口刷机报错问题
  11. 深度解读 RocketMQ 存储机制
  12. linux下使用PulseAudio获取扬声器的音量和是否静音
  13. 无标号有根树计数与无标号无根树计数
  14. win10卸载软件_删除win10全家桶,让你的电脑速度飞起来
  15. Android中使用Room(ORM关系映射框架)对sqllite数据库进行增删改查
  16. 电商API:淘宝/天猫获取sku详细信息
  17. 前端工程师 - 面试题 (最新,最全)
  18. 英式音标26字母发音规律
  19. 复古汉字_30个时髦的WordPress复古主题
  20. 网间互联-国家级互联网骨干直联点

热门文章

  1. excel图文教程:九九乘法表的制作方法
  2. 【Hive笔记】练习hive操作
  3. matlab的newff语句,matlab newff使用(引用自huangjunmei0805)
  4. javascript读取excel中的时间的格式问题
  5. Python pandas 保存Excel自动调整列宽的方法及示例代码
  6. Git (3)—IDEA集成Git和GitHub、Gitee的简介
  7. http协议中有关http头的技术资料
  8. wap微信登录php,请教一个wap2app微信登录的问题
  9. 咚咚咚————【封装驱动】MLX90614医用级红外温度传感器,分享交流自己编写的程序。
  10. Linux下创建FTP用户和密码(日常操作)