从JSON获取字节数组的正确方法

时间:2015-02-09 22:09:30

标签: ios objective-c json uiimage nsdata

我试图从字节数组中获取图像。如果直接在字符串中输入字节数组值,我只能得到图像,如下所示:

    NSMutableString *imagen = [[NSMutableString alloc] initWithString:@"-1,-40,-1,-32,0,16,74,70,73,70,0,1,0,1,0,96,0,96,0,0,-1,-2,0,31,76,69,65,68,32,84,101,99,104,110,111,108,111,103,105,101,115,32,73,110,99,46,32,86,49,46,48,49,0,-1,-37,0,-124,0,5,5,5,8,5,8,12,7,7,12,12,9,9,9,12,13,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13];

//这种方式运行正常

如果我尝试将字节数组转换为字符串,如下所示,那么我无法获得图像:

    NSString *logo=[NSString stringWithFormat:@"%@",[[JSON valueForKey:@"request"]valueForKey:@"logo" ]];

    NSMutableString *imagen = [[NSMutableString alloc] initWithString:logo];

   //this way doesnt work out

我正在关注此链接以完成任务。this link

您能告诉我从JSON获取字节数组的正确方法吗?

2 个答案:

答案 0 :(得分:2)

这不是可执行代码,它是一种使用方法:

您在self.receivedData

中获得了JSON

将其转换为具有
的对象 NSDictionary *jsonObject = NSJSONSerialization JSONObjectWithData:

**未知如何在JSON中编码图像数据。如果是Base64编码:

获取带有
的Base64image字符串 NSString *imageString = jsonObject[@"request"][@"logo"]

将Base64字符串转换为数据:
NSData *imageData = [NSData alloc] initWithBase64EncodedString: imageString options:

获取图像 UIImage *logoImage = [imageData imageWithData]

总而言之,您可以使用许多无法完成任务且将图像数据转换为NSString的代码不正确。

转换为字符串然后返回数据不会产生任何效果。

答案 1 :(得分:0)

这段代码好像很混乱?您发布的链接包含字符串编码,其中包含负数。您将这些解析为已签名,但随后使用bytes[i] = (uint8_t)byte;将它们分配给未签名的uint8_t数组。

我认为您需要发布字符串编码格式和示例吗?