postman通常需要传递各式各样的参数,本文主要介绍了postman传递对象参数(包含有集合对象),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
项目场景:
postman通常需要传递各式各样的参数,这样的话,进行写参数比较头疼,不知怎么进行传参。
解决方案:
可以考虑将参数对象写成json字符串的样式,然后将将字符串转换成json对象
实体类:
import lombok.allargsconstructor;
import lombok.data;
import lombok.noargsconstructor;
import org.apache.ibatis.annotations.param;
import org.hibernate.validator.constraints.length;
import org.springframework.validation.annotation.validated;
import javax.persistence.column;
import javax.persistence.id;
import javax.persistence.table;
import javax.persistence.transient;
import javax.validation.valid;
import javax.validation.constraints.digits;
import javax.validation.constraints.notnull;
import java.io.serializable;
import java.math.bigdecimal;
import java.util.date;
import java.util.list;
@data
@allargsconstructor
@noargsconstructor
@table(name = "ssm_funds_main")
public class funscjymodel implements serializable {
private static final long serialversionuid = 1l;
/**
* 主表id
*/
@id
// @notnull(message = "id不能为空")
@length(max = 32,message = "主表id长度不能超过32位")
@column(name = "bi_rs_id")
private string birsid;
/**
* 所属培训班
*/
@notnull(message = "所属培训班不能为空")
@length(max = 32,message = "培训班长度不能超过32位")
@column(name = "term_name")
private string termname;
/**
* 发票购买方
*/
@notnull(message = "发票购买方不能为空")
@length(max = 32,message = "发票购买方长度不能超过32位")
@column(name = "buyer")
private string buyer;
/**
* 发票销售方
*/
@notnull(message = "发票销售方不能为空")
@length(max = 32,message = "发票销售方长度不能超过32位")
@column(name = "saller")
private string saller;
/**
* 发票编号
*/
@length(max = 32,message = "发票编号长度不能超过32位")
private string billno;
/**
* 开票日期
*/
private date billdate;
/**
* 票面金额
*/
@digits(integer = 8,fraction = 2,message = "票面金额整数上限为8位,小数点上限为2位")
private bigdecimal billsum;
/**
* 复印件路径
*/
@length(max = 100,message = "复印件路径长度不能超过100位")
private string picpath;
/**
* 文件扩展名称
*/
@length(max = 10,message = "文件扩展名称长度不能超过100位")
private string picfileext;
/**
* 创建人
*/
@length(max = 32,message = "创建人id长度不能超过32位")
private string createid;
/**
* 创建时间
*/
private date createdate;
/**
* 修改人
*/
@length(max = 32,message = "修改人id长度不能超过32位")
private string modifyid;
/**
* 修改时间
*/
private date modifydate;
/**
* 从表集合
*/
@transient
@valid
private list<detailcjymodel> list;
参数样式:
{
"birsid":"",
"termname":"实训",
"buyer":"学生",
"saller":"学校",
"billno":"20210722",
"billsum":"900.00",
"createid":"cjy",
"list":[
{
"rsid":"",
"itemname":"语文",
"itemspec":"私人",
"itemunit":"元",
"qty":"10.00",
"price":"30.00",
"subsum":"300.00",
"taxpercent":"0.1",
"taxatm":"30.0"
},
{
"rsid":"",
"itemname":"数学",
"itemspec":"集体",
"itemunit":"元",
"qty":"20.00",
"price":"30.00",
"subsum":"600.00",
"taxpercent":"0.1",
"taxatm":"60.0"
}
]
}
控制层代码:
@requestmapping("/insertfunsdetailtwo")
@responsebody
public resultmap insertfunsdetailtwo(string datastr,@requestparam (value = "file",required = false) multipartfile file){
jsonobject datastrmap = jsonobject.parseobject(datastr);
funscjymodel funscjymodel = new funscjymodel();
funscjymodel.settermname((string)datastrmap.get("termname"));
funscjymodel.setbuyer((string)datastrmap.get("buyer"));
funscjymodel.setsaller((string)datastrmap.get("saller"));
funscjymodel.setbillno((string)datastrmap.get("billno"));
funscjymodel.setbillsum(funsmodelcjyserviceimpl.stringbigedecimal((string)datastrmap.get("billsum")));
funscjymodel.setcreateid((string)datastrmap.get("createid"));
string list1 = json.tojsonstring(datastrmap.get("list"));
list<detailcjymodel> list = jsonarray.parsearray(list1,detailcjymodel.class);
funscjymodel.setlist(list);
return funsmodelcjyservice.insertfunsanddetail(funscjymodel,file);
这样的话可以用postman的form-data传文件和集合对象的参数

补充:postman测试接口传递对象参数
url:

使用的是post方式请求
在headers设置:

在body写入对象信息,主要红线的地方:

到此这篇关于postman传递对象参数(包含有集合对象)的文章就介绍到这了,更多相关postman传递对象参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持小编!
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
资料获取方式 :

发表评论