Json与Java间传参常用的几种办法
发布时间:2021-12-13 11:10:14 所属栏目:教程 来源:互联网
导读:Json与Java间传参常用的几种方式 (一)Get方式传参 Get方式传参,是典型的URL传参方式,在URL后面加上变量和所要传递的值即可,这种方式比较简单,下面以示例的形式展示其使用方法 URL: http://localhost:8080/favccxx/rs/findInspectJobByJobId?jobId=525
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源代码: 123456789 @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; } ![]() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |