㈠ java 的Webservice 如何獲取post 提交的json數據
java的webservice獲取post提交的json數據的示例如下:
importorg.apache.http.Header;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.NameValuePair;
importorg.apache.http.client.ClientProtocolException;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.entity.StringEntity;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicHeader;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.params.BasicHttpParams;
importorg.apache.http.params.HttpConnectionParams;
importorg.apache.http.params.HttpParams;
importorg.apache.http.protocol.HTTP;
importorg.json.JSONException;
importorg.json.JSONObject;importandroid.app.Activity;
importandroid.content.Context;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.widget.TextView;importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.UnsupportedEncodingException;
importjava.net.HttpURLConnection;
importjava.util.ArrayList;
importjava.util.List;{
publicContextcontext;
privateTextViewtextView1;
publicstaticStringURL="http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
;
StringBuilderresult=newStringBuilder();
privatestaticfinalintTIMEOUT=60;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HttpParamsparamsw=createHttpParams();
掘岩擾
httpClient=newDefaultHttpClient(paramsw);
HttpPostpost=newHttpPost(
棗段"http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
List<NameValuePair>params=newArrayList<NameValuePair>();
params.add(newBasicNameValuePair("name","thisispost"));
try{
判旦//向伺服器寫json
JSONObjectjson=newJSONObject();
Objectemail=null;
json.put("email",email);
Objectpwd=null;
json.put("password",pwd);
StringEntityse=newStringEntity("JSON:"+json.toString());
se.setContentEncoding(newBasicHeader(HTTP.CONTENT_TYPE,"application/json"));
post.setEntity(se);post.setEntity(newUrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponsehttpResponse=httpClient.execute(post);
inthttpCode=httpResponse.getStatusLine().getStatusCode();
if(httpCode==HttpURLConnection.HTTP_OK&&httpResponse!=null){
Header[]headers=httpResponse.getAllHeaders();
HttpEntityentity=httpResponse.getEntity();
Headerheader=httpResponse.getFirstHeader("content-type");
//讀取伺服器返回的json數據(接受json伺服器數據)
InputStreaminputStream=entity.getContent();
=newInputStreamReader(inputStream);
BufferedReaderreader=newBufferedReader(inputStreamReader);//讀字元串用的。
Strings;
while(((s=reader.readLine())!=null)){
result.append(s);
}
reader.close();//關閉輸入流
//在這里把result這個字元串個給JSONObject。解讀裡面的內容。
JSONObjectjsonObject=newJSONObject(result.toString());
Stringre_username=jsonObject.getString("username");
Stringre_password=jsonObject.getString("password");
intre_user_id=jsonObject.getInt("user_id");
setTitle("用戶id_"+re_user_id);
Log.v("urlresponse","true="+re_username);
Log.v("urlresponse","true="+re_password);
}else{
textView1.setText("ErrorResponse"+httpResponse.getStatusLine().toString());
}
}catch(UnsupportedEncodingExceptione){
}catch(ClientProtocolExceptione){
}catch(IOExceptione){
}catch(JSONExceptione){
e.printStackTrace();
}finally{
if(httpClient!=null){
httpClient.getConnectionManager().shutdown();//最後關掉鏈接。
httpClient=null;
}
}
}(){
finalHttpParamsparams=newBasicHttpParams();
HttpConnectionParams.setStaleCheckingEnabled(params,false);
HttpConnectionParams.setConnectionTimeout(params,TIMEOUT*1000);
HttpConnectionParams.setSoTimeout(params,TIMEOUT*1000);
HttpConnectionParams.setSocketBufferSize(params,8192*5);
returnparams;
}
}
㈡ java開發,json是干什麼的
json其實就是封裝了一種數據格式,它使用了自己定義的標准。主要用來在伺服器和客戶端的瀏覽器進行數據交換。因為我們常用的表單形式提交數據,有諸多的不便,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調用的數據怎麼解析json
importorg.json.JSONObject;
try{
JSONObjectjson=new肆枝JSONObject();
inttotalProperty=json.getInt("totalProperty"輪判);
JSONObjectroot=json.getJSONObject("root");
裂桐敏}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
要取什麼值就用getXXX的方法來取
㈤ JAVA 開發 怎麼讓webservice輸出 json格式字元串
你可以這樣!!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的,那麼後面就應該懂得怎麼做了吧!
㈥ 用Java開發webservise怎麼返回json數據
標準的webservice是無法直接皮芹返羨握鋒回json數據的,因為標准webservice走soap協議,要求請求和相應報文都必須是xml
如果要返回json數據,只能在返回的xml中加屬性,裡面封兄晌裝json字元串
㈦ java webservice中 轉json時出錯了
JSONObject 這個類好多包都有實現,用法基本差不多
個人建世早散議搜氏睜滲用這個包里的
用法是這樣的
JSONObject json = new JSONObject("你的json字元串"); //這樣就是解析了一個JSON成對象
String value = json.getString("key");//這樣就是返回key對應的value返回的可能是JSON字元串
㈧ java webservice怎麼返回json數據
也真是醉了。ios開發人員放著webservice介面不用竟然要http介面。
http介面 很容易啊 寫一個servlet或者直接用struts ,他請求你servlet或者struts 對應的地址,你收到請求調相應服務中的方法就行了,如果服務返回殲悔的對象簡單,就拼接一下巧改租成json直接out.print到頁面上。如果復雜的話就用Xstream直接序列化成一個孝兆json 然後out ptint 就行啊。