66问答网
所有问题
SpringMVC怎么开发返回json数据的web service 接口
如题所述
举报该问题
推荐答案 2017-01-08
SpringMVCè¿åjsonæ°æ®æä¸ç§æ¹å¼ï¼
1ã第ä¸ç§æ¹å¼æ¯spring2æ¶ä»£ç产ç©ï¼ä¹å°±æ¯æ¯ä¸ªjsonè§å¾controlleré ç½®ä¸ä¸ªJsoniewã
å¦ï¼<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
æè <bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
åæ ·è¦ç¨jacksonçjarå ã
2ã第äºç§ä½¿ç¨JSONå·¥å ·å°å¯¹è±¡åºååæjsonï¼å¸¸ç¨å·¥å ·Jacksonï¼fastjsonï¼gsonã
å©ç¨HttpServletResponseï¼ç¶åè·åresponse.getOutputStream()æresponse.getWriter()
ç´æ¥è¾åºã
示ä¾ï¼
[java] view plain copy print?
public class JsonUtil
{
private static Gson gson=new Gson();
/**
* @MethodName : toJson
* @Description : å°å¯¹è±¡è½¬ä¸ºJSON串ï¼æ¤æ¹æ³è½å¤æ»¡è¶³å¤§é¨åéæ±
* @param src
* :å°è¦è¢«è½¬åç对象
* @return :转ååçJSON串
*/
public static String toJson(Object src) {
if (src == null) {
return gson.toJson(JsonNull.INSTANCE);
}
return gson.toJson(src);
}
}
3ã第ä¸ç§å©ç¨spring mvc3ç注解@ResponseBody
ä¾å¦ï¼
[java] view plain copy print?
@ResponseBody
@RequestMapping("/list")
public List<String> list(ModelMap modelMap) {
String hql = "select c from Clothing c ";
Page<Clothing> page = new Page<Clothing>();
page.setPageSize(6);
page = clothingServiceImpl.queryForPageByHql(page, hql);
return page.getResult();
}
ç¶å使ç¨spring mvcçé»è®¤é 置就å¯ä»¥è¿åjsonäºï¼ä¸è¿éè¦jacksonçjarå å¦ã
注æï¼å½springMVC-servlet.xmlä¸ä½¿ç¨<mvc:annotation-driven />æ¶ï¼å¦ææ¯3.1ä¹åå·²ç»é»è®¤æ³¨å ¥AnnotationMethodHandlerAdapterï¼3.1ä¹åé»è®¤æ³¨å ¥RequestMappingHandlerAdapteråªéå ä¸ä¸é¢æåçjarå å³å¯!
å¦ææ¯æå¨æ³¨å ¥RequestMappingHandlerAdapter å¯ä»¥è¿æ ·è®¾ç½®
é ç½®å¦ä¸ï¼
[html] view plain copy print?<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:ignoreDefaultModelOnRedirect="true" > <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> </list> </property> </bean>
æ·»å å
jackson-mapper-asl-*.jar
jackson-core-asl-*.jar
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/2s99Us2pnvs2vsDnis.html
其他回答
第1个回答 2016-04-16
1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。
如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
或者<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
同样要用jackson的jar包。
2、第二种使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson。
利用HttpServletResponse,然后获取response.getOutputStream()或response.getWriter()
直接输出。
示例:
[java] view plain copy print?
public class JsonUtil
{
private static Gson gson=new Gson();
/**
* @MethodName : toJson
* @Description : 将对象转为JSON串,此方法能够满足大部分需求
* @param src
* :将要被转化的对象
* @return :转化后的JSON串
*/
public static String toJson(Object src) {
if (src == null) {
return gson.toJson(JsonNull.INSTANCE);
}
return gson.toJson(src);
}
}
3、第三种利用spring mvc3的注解@ResponseBody
例如:
[java] view plain copy print?
@ResponseBody
@RequestMapping("/list")
public List<String> list(ModelMap modelMap) {
String hql = "select c from Clothing c ";
Page<Clothing> page = new Page<Clothing>();
page.setPageSize(6);
page = clothingServiceImpl.queryForPageByHql(page, hql);
return page.getResult();
}
然后使用spring mvc的默认配置就可以返回json了,不过需要jackson的jar包哦。
注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!
如果是手动注入RequestMappingHandlerAdapter 可以这样设置
配置如下:
[html] view plain copy print?<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:ignoreDefaultModelOnRedirect="true" > <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> </list> </property> </bean>
添加包
jackson-mapper-asl-*.jar
jackson-core-asl-*.jar
本回答被网友采纳
第2个回答 2016-06-28
web service 不需要springmvc啊 如果想用SpringMvc的话 使用
String result = "";//你的JSON数据
PrintWriter out = response.getWriter();
out.print(result);
out.close();
return;
这种方式往外传值即可
相似回答
用Java
开发web
servise
怎么返回json数据
答:
标准
的webservice
是无法直接
返回json数据的
,因为标准webservice走soap协议,要求请求和相应报文都必须是xml 如果要返回json数据,只能在返回的xml中加属性,里面封装json字符串
webservice
返回json
接口
案例
答:
产生如上数据的Webservice接口代码如下。解决方案:
改变数据的返回方式,用 Context.Response.Write代替return 语句,修改GetQrCodeList方法如下即可返回正确的Json格式数据
。返回结果如下:
C#写
的WebService
,连接
数据
库后
怎么返回JSON
字符串
答:
request.ContentType必须设置值,建议使用"application/x-www-form-urlencoded",设置其他值就很容易报服务器内部异常
,使用这种方式服务接口方法返回的是xml格式的字符串 payload将请求参数转换成二进制来保存,此处一定要将“paramaters”加入其中,不然会报异常缺少参数,paramaters就是服务接口函数的参数名。
如何
让
webservice
输出
json格式
答:
在ajax 定义
返回数据
类型,dataType: 'json',在
webservice
中
返回json数据
格式,webservice默认应该返回HMTL格式。
...中请求
的json
解析应该放在controller还是
service
层?
答:
在一个
Web
service
程序中,用户传过来的参数是
json
或者SOAP 在一个Swing程序中,用户传过来的参数就是字符串 如果你将
Service
和具体某个表现层环境绑定,那么其方法参数肯定不稳定,结果就导致无法复用。同理,Service的
返回值
也不应该和具体场景绑定。在
Spring MVC
层面,Controller可以很方便的把参数转换成...
webservice如何返回json
字符串
答:
你转成
json的
字符串,给
webservice返回
String就是了,不需要特别处理。客户端收到按
JSON
解码就是。满意请采纳。
大家正在搜
webapi返回json数据
javaweb返回json数据
javaweb返回json
ajax返回数据json
servlet返回json
java web json
webapi接收json
websocket传输json
webapi接中文json
相关问题
SpringMVC怎么开发返回json数据的web serv...
SpringMVC怎么开发返回json数据的web serv...
用Java开发webservise怎么返回json数据
SpringMVC怎么开发返回json数据的web serv...
webservice 返回json 接口 案例
SpringMVC怎么开发返回json数据的web serv...
springmvc返回json数据 有几种方法