webservice json,如何在调用webserver的时候直接返回一个json的数据
webservice json,如何在调用webserver的时候直接返回一个json的数据详细介绍
本文目录一览: 用Java开发webservise怎么返回json数据
返回json数据,其实将数据组成一个json格式的字符串,只需要返回一个字符串格式的就可以,在客户端进行解析
webservice 无法直接返回json数据
只能把json格式的字符串封装到返回的对象属性中
因为webservice使用的SOAP协议规定的,请求和响应都只能是xml
如果非要直接返回json,那就只能放弃使用webservice,可以换REST之类的方式
标准的webservice是无法直接返回json数据的,因为标准webservice走soap协议,要求请求和相应报文都必须是xml
如果要返回json数据,只能在返回的xml中加属性,里面封装json字符串
webservice怎样接收json类型的参数
在接口中定义String类型的参数,传递的时候将json转化为String进行传递,接收到后再将String转化为json对象。
可以用map将你的json封装json,然后将map和json互相转就可以了
在webservice中的参赛类型可以为string类型,传进去之后用.NET自带的JSS或者LetJson转换为相应对象就可以了。
c# webservice怎么样返回json
首先.webservice 本身就是基于xml的;数据的传递就是xml;
其次.你的截图叫报文.是用来提交soap1.1/1.2 以及接受返回值的xml报文格式
最后,你只需要在你的webservice的方法内,返回string类型;该返回值是一个标准的json格式即可.
当然,ws他不是一项技术而只是一种规范,你可以用很多种方法去实;
比如新建一个页面(*.jsp/asp/aspx/php等等),通过方法在页面上print你要输出的json数据
java中怎样解析webservice返回的json数据
json(javascript Object Notation 的缩写)是一个基于文本的,人类可读的,开放标准的轻量级数据交换格式。它继承了javascript中的简单数据结构和相关数组对象,称为对象。不管它 和javascript的瓜葛,json是语言独立的,几乎所有编程语言都能解析它。
json以键值对来表示数据。每个值被一个键名字引用(键名字是个string)。如果你想以json表示人名,他们的名字将被"name"键引用,如下:
“name” : “James”
所以json用一种容易被应用程序传递的方式表现数据,非常完美。
所以当从webservice解析数据时,你要做的第一件事就是搞清楚你的模型。下面我们会分析webservice的响应数据,搞清楚哪些bit代表对象,对象数组,对象所属的字段,等等。
但是json可以表示哪些类型的数据呢?
1.对象是大括号内的所有东东
2.字符串用双引号
3.数字只是简单的显示,如 12345
4. 数组由中括号包围
5.布尔值从'true'和'false'获得,没有引号
6.null值由'null'表示,没有引号
Java 的Webservice 如何获取post 提交的json数据
用ajax
type:post
若成功function(data,textStatus)
data是返回数据
sturts2框架中配置文件result中type=json
java的webservice获取post提交的json数据的示例如下:
import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.List; public class json extends Activity { public Context context; private TextView textView1; public static String URL = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"; private DefaultHttpClient httpClient; StringBuilder result = new StringBuilder(); private static final int TIMEOUT = 60; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); HttpParams paramsw = createHttpParams(); httpClient = new DefaultHttpClient(paramsw); HttpPost post = new HttpPost( "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"); List
params = new ArrayList
(); params.add(new BasicNameValuePair("name", "this is post")); try { //向服务器写json JSONObject json = new JSONObject(); Object email = null; json.put("email", email); Object pwd = null; json.put("password", pwd); StringEntity se = new StringEntity( "JSON: " + json.toString()); se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(se); post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); HttpResponse httpResponse = httpClient.execute(post); int httpCode = httpResponse.getStatusLine().getStatusCode(); if (httpCode == HttpURLConnection.HTTP_OK&&httpResponse!=null) { Header[] headers = httpResponse.getAllHeaders(); HttpEntity entity = httpResponse.getEntity(); Header header = httpResponse.getFirstHeader("content-type"); //读取服务器返回的json数据(接受json服务器数据) InputStream inputStream = entity.getContent(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader reader = new BufferedReader(inputStreamReader);// 读字符串用的。 String s; while (((s = reader.readLine()) != null)) { result.append(s); } reader.close();// 关闭输入流 //在这里把result这个字符串个给JSONObject。解读里面的内容。 JSONObject jsonObject = new JSONObject(result.toString()); String re_username = jsonObject.getString("username"); String re_password = jsonObject.getString("password"); int re_user_id = jsonObject.getInt("user_id"); setTitle("用户id_"+re_user_id); Log.v("url response", "true="+re_username); Log.v("url response", "true="+re_password); } else { textView1.setText("Error Response" + httpResponse.getStatusLine().toString()); } } catch (UnsupportedEncodingException e) { } catch (ClientProtocolException e) { } catch (IOException e) { } catch (JSONException e) { e.printStackTrace(); } finally { if (httpClient != null) { httpClient.getConnectionManager().shutdown();// 最后关掉链接。 httpClient = null; } } } public static final HttpParams createHttpParams() { final HttpParams params = new BasicHttpParams(); HttpConnectionParams.setStaleCheckingEnabled(params, false); HttpConnectionParams.setConnectionTimeout(params, TIMEOUT * 1000); HttpConnectionParams.setSoTimeout(params, TIMEOUT * 1000); HttpConnectionParams.setSocketBufferSize(params, 8192 * 5); return params; } }
在java中从WebService调用的数据怎么解析json
import org.json.JSONObject; try { JSONObject json = new JSONObject(); int totalProperty = json.getInt("totalProperty"); JSONObject root = json.getJSONObject("root"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }要取什么值就用getXXX的方法来取
JSONObject dataJson=new JSONObject("你的Json数据“);
int totalProperty=dataJson.getString("totalProperty");
JSONObject root=dataJson.getJSONObject("root");
JSONObject info=root.getJSONObject(0);
这样info就是数组:{"areainfocode": "001", "areainfoid": "asdfasdfa","areainfoname": "市南" }
用JSONArray解析,要么用Gson解析,JSONObject解析只能解析一条json数据,多条要用前面两个,而且json格式不能出错,百度上有很多例子,给你个网站看看:
网页链接
如何在调用webserver的时候直接返回一个json的数据
当ajax发送请求时,如果设置了contenttype为json,那么请求webservice时,会自动将返回的内容转为json的格式,json的格式iruxia {"d":"webservice方法返回的字符串内容"} 这时出现一个问题了,如果方法返回的是一个json格式的字符串,那么如何获得实际的json对象,而不是只有一个属性d的json对象呢? 其实很简单,我们只需要在success回调函数中eval下jquery通过获取webservice得到的json对象的d属性,就可以获取到实际的json对象了。 如下,如果方法返回的是 {"msg":"其实我也是json对象的字符串"} 这种信息,我们如何获取到msg这个属性的值呢? 首先一定要明确的时,调用webservice的方法后实际获取到的json格式的字符串是这样的 {"d":"{\"msg\":\"其实我也是json对象的字符串\"}"} ,jquery通过这个字符串生成的json对象只有一个属性,那就是d,d存储的是webservice方法返回的json格式的字符串信息,而不是json对象,所以不能通过 obj.d.msg来获取msg信息。而是需要 var realobj=eval('('+o.d+')')来生成实际的json对象,然后realobj.msg才是需要的信息。 例子如下 test.asmx +展开 -C# using System.Web.Script.Services; using System.Web.Services; namespace WebService35 { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] [ScriptMethod(UseHttpGet = true)] public string method1() { return "非json字符串";//实际返回的json格式的字符串为 {"d":"非json字符串"} } [WebMethod] [ScriptMethod(UseHttpGet = true)] public string method2() { return "{\"msg\":\"其实我也是json对象的字符串\"}"; //实际返回的json格式的字符串为 {"d":"{\"msg\":\"其实我也是json对象的字符串\"}"} } } }
webservice怎样接收json类型的参数
将json字符串作为webservice方法中的参数传入。
在webservice中的参赛类型可以为string类型,
传进去之后用.NET自带的JSS或者LetJson转换为相应对象就可以了。
java webservice怎么返回json数据
前端写一个界面,后台程序调用WebService,将返回的结果显示在自己的界面上就可以啦!~
也真是醉了。ios开发人员放着webservice接口不用竟然要http接口。
http接口 很容易啊 写一个servlet或者直接用struts ,他请求你servlet或者struts 对应的地址,你收到请求调相应服务中的方法就行了,如果服务返回的对象简单,就拼接一下成json直接out.print到页面上。如果复杂的话就用Xstream直接序列化成一个json 然后out ptint 就行啊。
JAVA 开发 怎么让webservice输出 json格式字符串?
你转成json的字符串,给webservice返回String就是了,不需要特别处理。客户端收到按JSON解码就是。
在ajax 定义返回数据类型,
dataType: 'json',
在webservice中返回json数据格式,webservice默认应该返回HMTL格式。
用struts2 框架开发的话,在配置文件里把result的类型设置为json,在action里使用json的jar包(在struts框架的jar包里好像自带有)。在页面使用jquery,ajax等可以解析。
估计你是对json不太了解,建议你去学习一下json,json格式拼对了,只要封装在request里面就行了
你可以这样!!Java的Servlet里面的response有个Writer是专门向向前台写东西的。也可以写Object。然后你可以观察下JSON的规则:
1.有一种是这样的:
{'3','54','54'}这是最简单的一种JSON
你可以观察到,这种写法和数组的写法还有List转换成toString后的写法是一模一样的,所以当你需要向前台传送一个列表的时候,就可以使用Writer.write(list)这种写法,然后前台使用Ajax接收下就可以了。
2.有一种是这样的:
{name:"ewhq",password:"dashk"}
你可以观察到,这种写法和Java里面的map转换成toString后的写法是一模一样的,那么你需要传输这样的格式的时候,就直接writer.write(map),就可以了,toString也不需要写,会帮你自动转换的。
一般来说,两种格式都是会结合起来的,当你需要传输一个表格的内容时:那么假设内容是这样
username password
________________
name1 pass1
name2 pass2
这样,你使用两个map来存储这两条数据
然后再使用List把两个Map加入进去,这个时候,数据就变成了
{{username:"name1",password:'pass2'},{username:"name2",password:"pass2"}}
然后,既然你做过XML的,那么后面就应该懂得怎么做了吧!