使用JSON将NSData发送到WCF服务

时间:2013-02-01 17:09:32

标签: iphone json wcf nsdata nsjsonserialization

我正在尝试使用WCF服务将文件从iPhone上传到网站。 WCF服务有很多方法可以从iPhone成功调用,除了这个。

[OperationContract]
[WebInvoke(Method = "POST",
   RequestFormat = WebMessageFormat.Json,
   ResponseFormat = WebMessageFormat.Json,
   BodyStyle = WebMessageBodyStyle.Bare,
   UriTemplate = "UploadFileBinary")]
UploadFileResponse jsonUploadFile(UploadFileRequest request);

UploadFileRequest分别包含byte []和FileBinaryData和FileName的字符串。

问题是我将文件数据作为NSData对象,并且不知道如何将其转换为JSON兼容格式。我尝试了一些建议,但没有一个适合我。

2 个答案:

答案 0 :(得分:2)

答案是更改WCF数据协定并添加string类型的数据成员。

iPhone端的

将NSData编码为base64字符串 在WCF端解码字符串并获取字节数组。

答案 1 :(得分:1)

您在寻找由您的数据代表的JSON字符串吗?如果是的话......

NSString *string = [NSString stringWithUTF8String:[data bytes]];

或者您正在寻找JSON代表解析过的真正的NSObject吗?这也很容易......

NSError *error;
id parse = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];