2013-08-15 1 views
0

В настоящее время я возвращаю 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(); 
     } 
+0

Где вы проверяете эту строку? \ r \ n - return/linefeed, а \ "часто показывает инструменты' '', чтобы указать, что это не конец строки. –

+0

Ну, устройство iOS не признает это действительным JSON из-за новой строки и символов возврата каретки. Эта строка была отправлена ​​мне с устройства iOS от разработчика iOS. –

+0

Я думаю, вам не нужно сериализовать свой результат возврата, просто пусть MVC сделает это за вас. Вы пробовали 'public ActionResult GetTpkMap (string fileName) { \t return Json (new {byteData = strData}); } '? – I4V

ответ

0

вы должны использовать перегрузку ToString(), который принимает параметр форматирования:.

return val.ToString(Formatting.None, yourJsonFormatters); 
+0

Я не знаком с конвертерами JSON (форматы, как вы указываете) ... Мне нужно будет прочитать их –