2012-10-23 103 views
0

我正在創建一個與wcf服務對話的iphone客戶端(我無法控制服務器,因此無法在此處進行更改)。將二進制數據轉換爲字節數組以便通過json傳輸

我需要將圖像發送到此服務器以及一些其他信息。它必須使用json發送。

我正在使用restkit來發送和接收數據。

問題是,二進制數據必須作爲字節數組發送。不作爲base64編碼的字符串。

我如何從一個UIImage的得到一個JSON字符串,看起來像這樣

「圖片」:{「內容」:1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,..........

我打開一個不使用restkit的解決方案。

+0

JSON甚至可以代表一個字節數組? –

回答

0

接收WCF服務中的類型是什麼?字節[]?

聽起來很蠢,但你可以嘗試映射到一個NSNumber realtionship並創建它們的一個數組。

關閉我的頭頂,我認爲這將作爲連載:

「圖片」:{ 「內容」: 「1」, 「1」, 「1」 .....

所以你也可能需要一個自定義的格式化程序。

0

這裏是一個SO帖子,將字節數組轉換爲NSString。如果我正確理解問題,請嘗試將字節數組轉換爲字符串,然後將其添加到您的提要中。 Objective-C - How can I convert Byte Array to NSString?

這裏是公認的答案的摘錄,代碼:

  NSData *data = [[NSMutableData alloc] init]; 
      uint8_t buffer[1024]; 
      unsigned int len = 0; 

      len = [(NSInputStream *)stream read:buffer maxLength:1024]; 

      if(len > 0) 
      { 
       [data appendBytes:&buffer length:len]; 
      } 
      NSString *serverText = [[NSString alloc] 
            initWithData:data 
            encoding:NSASCIIStringEncoding]; 

      NSLog(@"%@", serverText); 

另外值得注意一旦你的價值到您的JSON,注意不要超出你的JSON最大字符串長度值。

0

感謝您的快速回復。

無法獲得任何建議的工作答案,因此我們必須使用我們瘋狂的人員技能,並讓服務器端服務的公司更改其結尾,以便我們可以發送base64編碼的字符串。

相關問題