用Java开发webservise怎么返回json数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java开发webservise怎么返回json数据相关的知识,希望对你有一定的参考价值。

标准的webservice是无法直接返回json数据的,因为标准webservice走soap协议,要求请求和相应报文都必须是xml
如果要返回json数据,只能在返回的xml中加属性,里面封装json字符串
参考技术A 返回json数据,其实将数据组成一个json格式的字符串,只需要返回一个字符串格式的就可以,在客户端进行解析 参考技术B webservice 无法直接返回json数据
只能把json格式的字符串封装到返回的对象属性中
因为webservice使用的SOAP协议规定的,请求和响应都只能是xml
如果非要直接返回json,那就只能放弃使用webservice,可以换REST之类的方式

设计一个java接口,接收json,并且将处理结果按json的格式返回

web环境下,servlet下该怎么实现这个功能呢?怎么接收?怎么返回?

json说白了就是个字符串呗。
原来用servlet怎么接受字符串参数,就怎么接受json。
只不过这个json串一定要解析才能拿到想要的数据。
处理完后再生成一个json串用writer也好,跳转页面也好,总之把json输出就算返回了。
处理json你可以不必自己写代码,从网上找个json的工具包就可以,推荐jackson
参考技术A JSONObject jsonObject = new JSONObject();
Map map = request.getParameterMap();
Iterator<?> it = map.keySet().iterator();
while(it.hasNext())
String key = (String)it.next();
String[] values = (String[])map.get(key);
jsonObject.accumulate(key, values[0]);


String name = jsonObject.getString("userName"); //返回从前台接受的用户名
System.out.println(name); //输出用户名

jsonObject.clear(); // 清空jsonObjec中的数据
jsonObject.put("love" , "足球"); //将足球赋给love这个变量名
out.print(jsonObject); //返回json格式的数据本回答被提问者和网友采纳
参考技术B 网页可以发送一个普通的请求,附带一个json字符串的参数。
服务器端就是接受一个普通的请求并取得参数,json是一串普通的字符串,所以怎么处理随便你,你可以自己写个类来解析json。或者使用别人写好的jar包。
参考技术C

    下载一个fastjson-1.1.24的jar包,个人推荐这个,不过网上有很多都是用来组织和解析json的。

    json是按照字符串的形式传递来的,在servlet中获取这个参数,使用fastjson提供的方法解析,做相应的处理,得到返回字符串(json);

    以参数的方式返回页面信息,

以上是关于用Java开发webservise怎么返回json数据的主要内容,如果未能解决你的问题,请参考以下文章

怎么用Axis2发布一个webservice,service返回json格式数据,可以用Ajax访问直接解析?

在 java web开发中怎么使用json?

用PHP调用API返回JSON值,怎么把JSON返回值调用到html呢?

接口返回的json中有html标签,<BR>、<p>等,用jsonObject.getString()方法后html标签没了,怎么解决

设计一个java接口,接收json,并且将处理结果按json的格式返回

java中怎么讲数据库中的数据保存到json中返回给客户端。客户端怎么用jqurey或JavaScript解析显示。