java jason_Json与Java间传参常用的几种方式

(一)Get方式传参

Get方式传参,是典型的URL传参方式,在URL后面加上变量和所要传递的值即可,这种方式比较简单,下面以示例的形式展示其使用方法

URL:

http://localhost:8080/favccxx/rs/findInspectJobByJobId?jobId=525b8818d52cc6f835bb9e41

Java源代码:@GET

@Path("/findInspectJobByJobId")

@Produces({ MediaType.TEXT_XML })

public String findInspectJobByJobId(@QueryParam("jobId") String jobId,

@Context HttpServletRequest request) {

InspectJob inspectJob = inspectJobService.findOne("jobId", jobId);

return JsonUtil.toJson(inspectJob);

}

(二)POST方式传参

2.1使用URL做变量

将URL最后的位置当做变量去处理,如下所示的000,既是URL的地址,也是需要传递的参数。

URL:

http://localhost:8080/favccxx/rs/getInspectJobByJobId/000

Java源代码:

@POST

@Path("/getInspectJobByJobId/{jobId}")

@Produces({ MediaType.TEXT_XML })

public String getInspectJobByJobId(@PathParam("jobId") String jobId,

@Context HttpServletRequest request) {

InspectJob inspectJob = inspectJobService.findOne("jobId", jobId);

return JsonUtil.toJson(inspectJob);

}

2.2 使用传统的&连接符传递多个参数

一直误认为Json向java端传递参数,就是使用Json的格式传递的,其实并不是,默认情况下,Json向后端传递参数仍然是使用=、&连接符传递参数的。示例代码如下:

URL:

http://localhost:8080/favccxx/rs/queryInspectJobById

参数:

jobId=123456&jobName=A任务

Java源代码:@POST

@Path("/queryInspectJobById")

@Produces({ MediaType.APPLICATION_JSON })

public String queryInspectJobById(@FormParam("jobId") String jobId,

@FormParam("jobName") String jobName, @Context HttpServletRequest request) {

System.out.println("jobId:"+ jobId + ",AndjobName is:" + jobName) ;

InspectJob inspectJob = inspectJobService.findOne("jobId", jobId);

return JsonUtil.toJson(inspectJob);

}

2.3 使用Json格式传递,使用POJO类解析参数

使用此类方式传递参数时,Json格式数据中的变量,必须是Pojo类中的参数,这样可灵活传递参数,后端根据实际需要解析此参数,进行业务处理。

URL:

http://localhost:8080/favccxx/rs/queryInspectJobByJobId

参数:

{

"jobId" : "123456",

"jobName" : "A任务"

}

Java源代码:@POST

@Path("/queryInspectJobByJobId")

@Produces({ MediaType.APPLICATION_JSON })

public String queryInspectJobByJobId(@RequestBody String body,

@Context HttpServletRequest request) {

InspectJob inspectJobReq = JsonUtil.fromJson(body, InspectJob.class);

InspectJob inspectJob = inspectJobService.findOne("jobId", inspectJobReq.getJobId());

return JsonUtil.toJson(inspectJob);

}

2.4使用Json格式传参,使用自定义类QueryMap解参,适合分页查询

前端传参格式不变,后端封装一个QueryMap类,用来查询进行分页相关的数据。

URL:

http://localhost:8080/favccxx/rs/pageQueryJob

参数:

{

"pageIndex" : 2,

"queryMap" : {

"jobId" :"525b8818d52cc6f835bb9e41"

}

}

Java源代码:@POST

@Path("/pageQueryJob")

@Produces({ MediaType.APPLICATION_JSON })

public String pageQueryJob(@RequestBody String body,

@Context HttpServletRequest request){

PageQuery pageQuery= JsonUtil.fromJson(body,PageQuery.class);

String jobId = pageQuery.getQueryMapByKey("jobId").toString();

returnnull;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值