2016-11-03 3 views
1

Я использовал NSJSONSerialization для преобразования NSdata в приложение ios.NSJSON Сериализация: ошибка «Нет значения»

Вот мой код:

[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] 
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ // getting 1 byte data 
    if (error) 
    { 
    } 
    else 
    { 
     NSError *errorData = nil; 
     id responseObject1 = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&errorData]; 

     // error : Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x78e43130 {NSDebugDescription=No value.} 

     if (!errorData) 
     { 
     } ...... 
    } 
} 

Вот мои данные JSON:

{"root":{"status":true,"info":"Inserted"}} 

И я получаю 1 байт данных после отправки запроса.

Но это не преобразование данных. Это дает «Нет значения» ошибка во время синтаксического анализа:

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x78e43130 {NSDebugDescription=No value.}

Пожалуйста, помогите мне: что это проблема?

+2

Получение данных один байт? Вы имеете в виду, что [длина данных] = 1? В самом деле? Который из? Как он должен быть действительным JSON после ответа? – Larme

+0

Попробуйте: '[NSJSONSerialization JSONObjectWithData: параметры данных: 0 error: & errorData];' –

+0

Если вы используете NSLog (@ "% @", data) ', что вы получаете? –

ответ

0

Попробуйте

id responseObject1 = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingAllowFragments error:&errorData]; 
Смежные вопросы