2010-11-19 21 views
0

HyAyrıştırma JSON ASP.NET web hizmeti dize ve JSON dizesi

dönmek Ben bir iPhone geliştiricisi olarak, bunun arkasında asp.net ve mssql veritabanı ile iletişim kurmak zorunda bir uygulama var. JSON dize ile iletişim kurmanın iyi olacağını düşündüm. IPhone tarafını uyguladım ama ondan sonra sıkıştım. -JSON dizesini bir .NET sınıfına nasıl ayrıştırabilirim? -Veri ile saklı yordamı nasıl arayabilirim? -iPhone'a JSON dizesinde nasıl yanıt verebilirim?

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

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

cevap

0

ScriptService özniteliği (System.Web.Script.Services ad alanı) ile dekore edilmiş bir ASP.NET web hizmeti (.asmx dosyası) kullanmayı seviyorum. Bu otomatik bir .NET sınıfa gelen bir JSON nesnesi dönüştürür ve sonuç JSON dönüştürülecektir:

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(); 
    } 
} 
Ben * basit * C# webcoder Android'in App Inventor TinyWebDB GetValue ve StoreValue özellik var iletişim görmek zor para verir misin
0

a JSON ayrıştırmak için JavaScriptSerializer sınıfının Deserialize<T> yöntemi kullanın: Burada

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"]; 

istek ve yük (RequestData) ile günlük geçerli: Burada

benim uygulamasıdır .NET sınıfı (.NET 3.5 SP1 ve 4.0). Sınıfın özelliklerini parametre olarak prosedüre geçirerek saklı yordamları çağırın.

.NET nesnelerini JSON'a dönüştürmek için JavaScriptSerializer sınıfının Serialize yöntemini kullanın. Veya sizin için bazı serileştirme işlemlerini gerçekleştirecek bir WCF hizmeti kullanın.

+0

yöntemleri. Açık olmadığım şey, Değer Etiketlerim'in hizmet kodunda tanımlanması (kodlanmış) olması veya argümanlara web Hizmetine gönderilebilmesidir. – o365spo