Парсер JSON для получения изображения - PullRequest
0 голосов
/ 20 мая 2010

Как я могу получить изображение с сервера, используя анализатор JSON?

NSString *jsonString = [[NSString alloc] initWithData:response 
                                         encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString JSONValue]; 
NSArray *photos = [results objectForKey:@"ImageData"]; 

for (NSDictionary *ImageData in photos) 
{
    NSString *name = [ImageData objectForKey:@"name"]; 
    label.text = name; 
    //NSData *data = [ImageData objectForKey:@"src"];
    //UIImage *imgs = [[UIImage alloc] initWithData:data]; 
    //img.image = [[UIImage alloc]initWithData:[ImageData objectForKey:@"src"]];
} 

Комментированные строки кода выше не показывают изображение. Так как я могу отобразить изображение? Я также использую JSON Framework из кода Google.

Ответы [ 3 ]

0 голосов
/ 25 марта 2011


если вы можете изменить ответ сервера, попросите Base64 представление изображения. Вокруг есть несколько довольно быстрых процедур кодирования / декодирования - больше на CocoaDev: BaseSixtyFour . Однако, в зависимости от варианта использования, это может быть немного излишним.
Другим вариантом будет, например, получить URL-адрес изображения в JSON, а затем загрузить его, а затем, возможно, сохранить / кэшировать его.

0 голосов
/ 25 марта 2011

Просто попробуйте использовать это, так как кажется, что вы пропустили выделение памяти для UIImageView:

img = [[UIImageView alloc] init];

такдаже если изображение сформировано с помощью NSData, но не может отображаться в ImageView.

NSString *jsonString = [[NSString alloc] initWithData:response 
                                         encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString JSONValue]; 
NSArray *photos = [results objectForKey:@"ImageData"]; 

for (NSDictionary *ImageData in photos) 
{
    NSString *name = [ImageData objectForKey:@"name"]; 
    img = [[UIImageView alloc]init];
    img.image=[[UIImage alloc]initWithData:[ImageData objectForKey:@"src"]];   
} 

Надеюсь, что это сработает:)

0 голосов
/ 20 мая 2010

Я использую json-framework из Google Code. URL-адрес: json-framework .

...