В настоящее время я возвращаю string
из моего вызова веб-метода, который получает устройство iOS. Когда iOS получает эти данные, строковое представление объекта JSON, оно содержит пучок из \n\r
символов, а также число обратных косых черт (\
) - поэтому в результате iOS-устройство не признает это действительным JSON. смотри ниже:Мой метод веб-службы .NET должен возвращать результат JSON вызывающему клиенту (устройству iOS), но возвращает кучу of r n's
"{\ г \ п \" byteData \ ": \". UEsDBAoAAAAAALlp ... и т.д.»
Я не уверен, если это из-за каких-либо некорректного кода является ценам ниже ? что вы видите, что я делаю неправильно ниже я использую Json.NET
[HttpGet]
public string GetTpkMap(string fileName)
{
// go out to file share to get map
string sharePath = string.Format(@"\\server\shared\TPK\{0}", fileName + ".tpk");
FileStream fs = File.Open(sharePath, FileMode.Open, FileAccess.Read);
// load FileStream into a byte array
int length = (int)fs.Length;
byte[] data = new byte[length];
fs.Read(data, 0, length);
fs.Close();
// convert byteData to a Base64String to pass back to the client
string strData = Convert.ToBase64String(data);
dynamic tpkByteData = new JObject();
tpkByteData.byteData = strData;
JObject val = (JObject)JToken.FromObject(tpkByteData);
return val.ToString();
}
Где вы проверяете эту строку? \ r \ n - return/linefeed, а \ "часто показывает инструменты' '', чтобы указать, что это не конец строки. –
Ну, устройство iOS не признает это действительным JSON из-за новой строки и символов возврата каретки. Эта строка была отправлена мне с устройства iOS от разработчика iOS. –
Я думаю, вам не нужно сериализовать свой результат возврата, просто пусть MVC сделает это за вас. Вы пробовали 'public ActionResult GetTpkMap (string fileName) { \t return Json (new {byteData = strData}); } '? – I4V