Разобрать строку JSON в веб-службе ASP.NET и вернуть строку JSON - PullRequest
0 голосов
/ 20 ноября 2010

Hy

Я разработчик для 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"}

Ответы [ 2 ]

0 голосов
/ 20 ноября 2010

Мне нравится использовать веб-сервис ASP.NET (файл .asmx), который украшен атрибутом ScriptService (пространство имен System.Web.Script.Services). Это автоматически преобразует входящий объект 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 голосов
/ 20 ноября 2010

Используйте метод Deserialize<T> класса JavaScriptSerializer для анализа JSON в классе .NET (.NET 3.5 SP1 и 4.0). Вызовите хранимые процедуры, передав свойства класса в процедуру в качестве параметров.

Используйте метод Serialize класса JavaScriptSerializer для преобразования объектов .NET в JSON.

Или используйте службу WCF, которая будет обрабатывать некоторые сериализации для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...