`

使用Struts2写的接口实现接收json格式的数据

 
阅读更多

 

客户端往服务端发送json格式数据,服务端处理json数据(简单json格式)

 

先说下需求:写一个接口,接收数据格式是json。

如果使用springMVC实现,非常简单,方法中使用@RequestBody接收参数 即可,如下:

 

[java] view plain copy
 
  1. <span style="white-space:pre">  </span>@ResponseBody  
  2.     @RequestMapping(value = "/create" , method = RequestMethod.POST)  
  3.     public XXX xxx(@RequestBody String json) {  
  4.         xxxxxx  
  5.     }  

如果对springMVC实现比较感兴趣,自己去百度,网上一堆资料。

 

下面我介绍下使用struts2实现,这方面我找了很多资料,网上资料很杂,自己总结后并且实现了功能。

其实一开始自己的没弄明白原理,找的资料都是如何从页面传递json到后台,这并不是我想要的。

我们开发接口是供别人调用的,别人在他们项目中直接访问你的接口url并通过post请求传递json数据。我们接口中是要接收json数据并进行解析,可是json是一个整体,如何接收,没有key..使用谷歌的模拟post请求工具插件Advanced RestClient调试后发现,json数据其实是在post请求体中,类似于form表单,只不过json的httppost.setHeader("Content-Type","application/json"),而form表单为httppost.setHeader("Content-Type","application/x-www-form-urlencoded");所以可以获取post请求体中的内容再进行解析。代码如下:

 

[java] view plain copy
 
  1. <span style="white-space:pre">  </span>//获取请求体中的数据  
  2.     public String getStrResponse(){  
  3.         ActionContext ctx = ActionContext.getContext();  
  4.         HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);     
  5.         InputStream inputStream;  
  6.         String strResponse = "";  
  7.         try {  
  8.         inputStream = request.getInputStream();  
  9.         String strMessage = "";  
  10.         BufferedReader reader;  
  11.         reader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));  
  12.         while ((strMessage = reader.readLine()) != null) {  
  13.         strResponse += strMessage;  
  14.         }  
  15.         reader.close();  
  16.         inputStream.close();  
  17.         } catch (IOException e) {  
  18.             e.printStackTrace();  
  19.         }  
  20.         return strResponse;  
  21.     }  
[java] view plain copy
 
  1. <span style="white-space:pre">  </span>/*XXXX任务接口*/  
  2.     public String XXXTask(){  
  3.          //获取请求体中内容,转换为json  
  4.         JSONObject jsonRequest = JSONObject.fromObject(this.getStrResponse());  
  5.         //获取json中参数  
  6.         String accountId1=jsonRequest.getString("account_id");  
  7.         Long accountId=Long.parseLong(accountId1);  
  8.         String verifyContent=jsonRequest.getString("verify_content");  
  9.         String verifyType=jsonRequest.getString("verify_type");  
  10.         log.info("获得请求参数[account_id:"+accountId+",verify_content:"+verifyContent+",verify_type:"+verifyType+"]");  
  11.         if("N".equalsIgnoreCase(verifyType)){  
  12.             verifyType = "1";  
  13.         }else if("A".equalsIgnoreCase(verifyType)){  
  14.             verifyType = "2";  
  15.         }else if("P".equalsIgnoreCase(verifyType)){  
  16.             verifyType = "3";  
  17.         }  
  18.         //下面为具体业务处理  
  19.         xxxxxxxxx  
  20.           
  21.         try {  
  22.             xxxxxxxxxxxx  
  23.             resMap.put(Fields.ERROR_NO_KEY, 0);  
  24.             resMap.put(Fields.ERROR_INFO_KEY, "提交xxxx审核成功");  
  25.             log.info("提交xxxx审核成功");  
  26.         } catch (Exception e) {  
  27.             e.printStackTrace();  
  28.             resMap.put(Fields.ERROR_NO_KEY, -1);  
  29.             resMap.put(Fields.ERROR_INFO_KEY, "提交xxxx审核失败");  
  30.             log.error("提交xxxx审核失败");  
  31.         }  
  32.         return SUCCESS;  
  33.     }  

 

测试 发送参数如下:

{
"account_id": "6",
"verify_content": "资料修改6",
"verify_type": "N"
}

 

 

成功接收参数。此时接口完成。

 

http://blog.csdn.net/devin_ran/article/details/53639205

 

分享到:
评论

相关推荐

    Struts2+Json+Android简单实现

    在本示例中,“StrutsJson”可能是服务端的一个模块,它利用Struts2的JSON结果类型来发送和接收JSON格式的数据。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    struts2要使用json必须的两个包

    通过以上步骤,Struts2应用就能顺利地与前端或API客户端进行JSON数据的交换,提高了开发效率和应用的可维护性。记得在使用过程中,要根据项目的具体需求和所使用的JDK版本选择合适的JSON库版本,以确保最佳的兼容性...

    Struts2_JSON_Demo

    4. **JSON响应**:在客户端,通常使用JavaScript或者jQuery等库来解析接收到的JSON数据,并进行相应的DOM操作,如填充表格或者更新页面元素。例如,使用jQuery的`$.getJSON()`方法获取JSON数据: ```javascript $....

    json struts2转换

    而`struts2-json-plugin-2.1.8.jar`则是Struts2的JSON插件,它提供了对JSON的支持,允许我们在Struts2应用中轻松地生成和消费JSON数据。 1. **配置JSON支持**:要在Struts2中启用JSON响应,首先需要在`struts.xml`...

    json示例下载 +struts2

    在Struts2中,我们可以利用插件机制轻松实现JSON数据的处理。Struts2的JSON插件允许我们将Action的结果直接转换为JSON格式,无需额外的编码工作。以下是一些关于Struts2与JSON结合使用的知识点: 1. **安装JSON插件...

    Android开发HTTP传输数据到Struts2生成Json数据案例

    为了接收JSON数据,需要在Action类的方法上使用`@Action("your-action")`注解,并设置接受的参数类型为`Map, Object&gt;`或自定义的Java对象,Struts2会自动将JSON数据解析到这些参数中。 ```java public class Your...

    struts2--json包

    在Struts2中,JSON(JavaScript Object Notation)包是一个关键组件,它提供了与JSON数据格式交互的能力,使得Web应用能够更高效地进行客户端和服务器端的数据交换。JSON是一种轻量级的数据交换格式,它易于人阅读和...

    json包及依赖包 struts2集成包

    5. 前端交互:前端使用AJAX发送请求,接收到服务器返回的JSON数据后进行解析和展示。 通过以上步骤,我们可以成功地在Struts2框架下集成JSON,实现后端与前端的高效数据交换。这不仅提高了Web应用的性能,还简化了...

    Android+struts2+JSON方式的手机开发

    2. **JSON序列化和反序列化**:使用Gson或Jackson库将Java对象转换为JSON字符串,以及将接收到的JSON数据转换回Java对象。 3. **Struts2配置**:在struts.xml文件中配置Action,指定输入输出的类型,以及如何将结果...

    struts2的json插件

    JSON(JavaScript Object Notation)插件是Struts2框架的一个重要组成部分,它允许应用以JSON格式进行数据交换,这对于实现AJAX(异步JavaScript和XML)功能和前后端数据交互至关重要。 首先,我们要理解JSON的作用...

    ajax,struts2,json实现省市区三级联动源码含全国省市区数据库

    7. **后端接口设计**:Struts2需要提供一个或多个Action,接收AJAX请求,根据请求参数查询数据库,然后将结果以JSON格式返回。 8. **数据缓存**:为了提高性能,项目可能还涉及到数据缓存机制,例如使用HTTP缓存或...

    Struts2_Android(2.2)_模拟数据访问项目 JSON项目

    在“Struts2_Android(2.2)_模拟数据访问项目 JSON项目”中,我们关注的是如何在Android客户端与Struts2后端之间进行JSON数据交换。这个项目可能是为了展示如何在Android应用中利用Struts2提供的服务接口来获取或提交...

    struts2+jQuery+json 实例

    后端Struts2框架接收到请求后,会调用相应的Action执行业务逻辑。业务处理完成后,数据以JSON格式返回到前端。 - **jQuery AJAX请求**: 使用jQuery的$.ajax()或$.getJSON()方法,可以轻松发起异步请求。例如,发送...

    struts2的json插件配置详解(附示例strutsJson)

    在这个例子中,`/helloWorld.json`请求会被发送到服务器,Struts2框架会处理这个请求,返回JSON数据,然后jQuery会将接收到的JSON数据解析并显示在页面上。 关于源码方面,你可以查看`src`目录下的Java源代码和`...

    struts2.3.15 和hibenate3.2.0 json jdbc库包

    在使用Struts2和Hibernate集成时,开发者通常会在Struts2的Action类中调用Hibernate的Session对象进行数据库操作,然后通过JSON格式返回给前端页面,或者接收前端通过JSON发送的数据。这种结合提供了强大的后端数据...

    最简单的:Struts2+JSON+JQUERY+AJAX 完整DEMO源代码

    在"GameAPI"这个压缩包中,很可能包含了一个游戏相关的API接口示例,使用Struts2作为后端处理逻辑,通过JSON进行数据交换,前端可能使用JQUERY和AJAX进行异步通信。具体的实现可能包括以下几个部分: 1. **Action类...

    JQuery,JSON,Struts2实现Ajax异步请求

    本文将详细讲解如何使用JQuery、JSON和Struts2框架来实现Ajax异步请求。 首先,JQuery是一个轻量级、高性能的JavaScript库,它简化了DOM操作、事件处理以及AJAX交互。在JQuery中,我们可以通过多种方法来发起Ajax...

    图片上传接口-Json

    4. **服务器处理**:服务器接收到POST请求后,解析JSON数据,提取出Base64字符串,将其解码回原始的图片二进制数据。然后,服务器会将图片保存到指定的存储位置,例如硬盘、云存储服务等,并记录相关信息,如文件名...

    java struts2实现文件上传进度条显示

    在Java Struts2框架中实现文件上传进度条显示,主要涉及到的技术点包括Struts2的文件上传、Ajax异步通信以及前端进度条组件的使用。下面将详细讲解这些知识点。 首先,Struts2的文件上传功能是通过Struts2提供的`...

Global site tag (gtag.js) - Google Analytics