2010-11-19 11 views
0

のHy解析JSONのASP.NET Webサービス上の文字列、およびJSON文字列を返す

私はiPhoneの開発者だし、私はその背後にあるasp.netとMSSQLデータベースと通信する必要があるアプリケーションを、持っています。私は、JSON文字列との通信は問題ないと思った。私はiPhone側を実装しましたが、その後、私は立ち往生しました。 - JSON文字列を.NETクラスに解析できますか? - データでストアドプロシージャを呼び出す方法 - iPhoneにJSON文字列で応答するにはどうすればよいですか?ここで

は私の実装です:ここでは

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というファイル)を使用して好きです。これは、自動的に.NETクラスに入ってくるJSONオブジェクトに変換し、その結果をJSONに変換されます:私は*シンプル* C#のWebサービスを参照するのは難しいの現金を支払うことになる

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

はにJSONを解析するためにJavaScriptSerializerクラスのDeserialize<T>メソッドを使用します.NETクラス(.NET 3.5 SP1および4.0)。 クラスのプロパティをパラメータとしてプロシージャに渡すことにより、ストアドプロシージャを呼び出します。

JavaScriptSerializerクラスのSerializeメソッドを使用して、.NETオブジェクトをJSONに変換します。

または、シリアライズの一部を処理するWCFサービスを使用します。

+0

のAndroidのApp InventorのTinyWebDB GetValueメソッドとStoreValueとのを伝えますメソッド。私の価値タグがサービスのコードで定義されている(ハードコードされている)必要がある場合、またはそれらがWebサービスへの引数で送信できるかどうかがわかりません。 – o365spo