我想实现一个Web服务来恢复我的实体PictureCaptures的数组:
PictureCaptures
---------------
- description : string
- captureDate : DateTime
- photoBinary : byte[]
Web服务将主要由iOS
应用程序调用。
由于字节数组属性?
,实现它的最佳方法是什么?我是否假设在没有任何转换的情况下返回字节数组,作为一个简单的JSON
属性?如果是,如何插入JSON
响应? - 在这种情况下JSONObjectWithData:options:error:
不起作用,数据和内存问题太多了) -
感谢您的帮助。
答案 0 :(得分:0)
当你得到JSON响应时,你应该将btye数组转换为NSData。 首先将Base64.h和m文件添加到项目中(您可以在Internet上轻松找到)
然后导入Base64.h
来自您的JSON数据的
NSString *data= [yourJSONDict objectForKey:@"photoBinary"];
NSData* imageData = [data base64DecodedData];
UIImage *imag=[UIImage imageWithData:imageData];
[yourImageView setImage:imag];
这可能对你有帮助。
答案 1 :(得分:0)
我建议你添加两个资源:一个用于元数据(description,captureDate等),另一个用于二进制数据。让元数据资源包含指向二进制照片数据的链接。
像这样:
GET /images/1234
响应:
{
description: "Nice photo",
captureDate: "2012-04-23T18:25:43.511Z",
photoData: "http://example.org/images/1234/photo"
}
和http://example.org/images/1234/photo返回原始照片数据
(有关日期格式的讨论,另请参阅The "right" JSON date format。)