2014-02-14 109 views
0

我想從我的android活動發送一個json對象到我的asp.net web服務,通​​過下面的代碼。發送json對象到ASP.net C#從Android

//This is Category.java 

JSONObject json=new JSONObject(); 
try 
{ 
      CallSoap cs=new CallSoap(); 
    String name="Ramu"; 
    String username="[email protected]"; 
    String password="welcome"; 
    json.put("name", name); 
    json.put("username",username); 
    json.put("password", password); 
    String resp=cs.demo(json); // I need to send this json to my asp.net web server 
    Log.d("Response from server",resp); 
} 
catch(Exception ex) 
{ 
    ex.printStackTrace(); 
} 
//This is callsoap.java 

public String demo(JSONObject a) 
{ 
      public final String SOAP_ACTION5= "http://tempuri.org/demo"; 
      public final String OPERATION_NAME5= "demo"; 
      public final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/"; 
      public final String SOAP_ADDRESS = "http://tn.selevanta.com/Convert.asmx" 

    SoapObject request=new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME5); 
    PropertyInfo pi=new PropertyInfo(); 
    pi.setName("a"); 
    pi.setValue(a); 
    pi.setType(JSONObject.class); 
    request.addProperty(pi); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 
    Object response=null; 

    try 
    { 
     httpTransport.call(SOAP_ACTION5, envelope); 
     response = envelope.getResponse(); 
    } 
    catch(Exception ex) 
    { 
     response=ex.toString(); 
    } 
    //JSONArray JSONArray = null; 
    return response.toString(); 


} 

我不知道應該在服務器的我的Convert.cs文件中寫什麼代碼。 我需要在名爲demo的Convert.cs中編寫一個函數。然後,我的android活動中的json對象應該被髮送到Convert.cs中的這個演示函數。在我的Convert.cs文件中接收到json對象後,我需要從收到的json對象中解析出json數據。因此,json數據的名稱,用戶名,密碼應該保存到我的sql服務器數據庫中。 我知道將數據保存到sql server數據庫的編碼,但我不知道如何接收json對象到我的演示函數並解析json對象中可用的json數據。我還寫了另一個Person.cs文件,其中包含以下數據。

public class Person 
{ 

    public string name { get; set; } 
    public string username { get; set; } 
    public string password { get; set; } 

} 

這是一個Covert.cs代碼的部分文件

[System.Web.Services.WebMethod()] 
public String demo(//dont know how to receive the json object here) 
{ 
    // I don't know the Code for processing the json object received. 

    return "success"; 
} 

回答

0

可以使用JavaScriptSerializer在這裏做所有的辛勤工作的你,看下面的例子。

[System.Web.Services.WebMethod()] 
public String demo(string personInfo) 
{ 
    var jss = new System.Web.Script.Serialization.JavaScriptSerializer(); 
    var aPerson = jss.Deserialize<Person>(personInfo); 
+0

我有疑問。我正在發送一個來自android&json對象的demo,你正在用一個字符串接受它。這可能嗎? – njnjnj

+0

這不起作用。我已經測試過它...... – njnjnj

+0

在var jss這一行添加一個斷點,並在該點發布personInfo的內容。 JSON是基於字符串的數據格式,這就是爲什麼接受JSON參數的正確方式是字符串。 – JonMac1374