博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Json与Java间传参常用的几种方式
阅读量:5962 次
发布时间:2019-06-19

本文共 2718 字,大约阅读时间需要 9 分钟。

(一)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 使用传统的&连接符传递多个参数

  一直误认为Jsonjava端传递参数,就是使用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;    }

转载地址:http://ntcax.baihongyu.com/

你可能感兴趣的文章
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>
linux安全问答(1)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
解读最具O2O属性—哈根达斯微信企业号的成功之道
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>