2013-08-15 1 views
0

현재 웹 메서드 호출에서 string을 반환합니다. iOS 기기가 가져 오는 iOS가 JSON 개체의 문자열 표현 인이 데이터를 가져 오면 \n\r 문자와 여러 개의 백 슬래시 (\)를 포함하므로 iOS 장치는이를 유효한 JSON으로 인식하지 못합니다. 아래 참조 :내 .NET 웹 서비스 메서드가 JSON 결과를 호출 클라이언트 (iOS 장치)로 반환해야하지만 r n의 무리를 반환합니다.

"{\ 연구 \ 없음 \"byteData \ "\". UEsDBAoAAAAAALlp ... 등 "

때문에 내가하는 모든 결함 코드 below-의가 있는지 확실하지 않다 ? 당신은 내가 잘못 아래에하고 있어요 볼 것을 나는 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

반환 결과를 serialize 할 필요가 없다고 생각합니다. MVC가 대신 해드 리도록하겠습니다. 'public ActionResult GetTpkMap (string fileName) 시도한 적이 있습니까? { \t return Json (new {byteData = strData}); }'? – I4V

답변

0

당신은 형식 매개 변수를 취 ToString()의 과부하 사용해야합니다.

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

JSON 변환기에 익숙하지 않습니다. (형식 지정자 임) ... –