2010-11-19 81 views
0

海蘭解析JSON字符串的ASP.NET Web服務,並返回JSON字符串

我的iPhone開發人員,我有一個應用程序,它有asp.net和MSSQL數據庫背後的通信。我想,與JSON字符串溝通會很好。我已經實現了iPhone端,但之後,我堅持。 - 如何解析JSON字符串到.NET類中? - 如何使用數據調用存儲過程? - 如何以JSON字符串響應iPhone?

這是我實現:

MutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:url]]; 
    [request setHTTPMethod:@"**POST**"]; 
    [request setCachePolicy:NSURLCacheStorageNotAllowed]; 
    [request setTimeoutInterval:60.0f]; 
    SBJsonWriter *writer = [SBJsonWriter new]; 
    NSString *paramStr = [writer stringWithObject:_parameters]; 
    [writer release]; 
    NSData *requestData = [paramStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 

    [request setHTTPBody:requestData]; 
    [request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

這裏是日誌與請求和有效載荷(的RequestData):

URL: http://mydomain.hu/MainHandle.ashx/login 

paramString: {"password":"myPassword","email":"myAddress"} 

回答

0

我喜歡使用用ScriptService屬性(System.Web.Script.Services命名空間)修飾的ASP.NET web服務(.asmx文件)。這將自動轉換傳入的JSON對象爲.NET類和結果將被轉換成JSON:

public class UserInfo 
{ 
    public string password { get; set; } 
    public string email { get; set; } 
} 

public class ServiceResult 
{ 
    // Service result 
} 

[ScriptService] 
public class MyService 
{ 
    [WebMethod, ScriptMethod(UseHttpGet = false)] 
    public ServiceResult DoStuff(UserInfo userInfo) 
    { 
     // Do stuff with userInfo.password, userInfo.email 
     return new ServiceResult(); 
    } 
} 
0

使用JavaScriptSerializer類的Deserialize<T>方法來解析JSON的.NET類(.NET 3.5 SP1和4.0)。 通過將類的屬性作爲參數傳遞給過程來調用存儲過程。

使用JavaScriptSerializer類的Serialize方法將.NET對象轉換爲JSON。

或者使用一個WCF服務來處理一些序列化。

+0

我會付出真金白銀看到一個*簡單* C#webservice的溝通與Android的應用發明TinyWebDB的GetValue和StoreValue方法。我不清楚的是,如果我的價值標籤需要在服務代碼中定義(硬編碼),或者它們可以通過參數發送到Web服務。 – o365spo 2011-01-25 17:57:41