2013-06-10 3 views
3

У меня есть служба PHP, которая возвращает мне следующий ответ в формате NSData. После преобразования такой же в NSString с помощью:Преобразование данных JSON из NSData в NSDictionary

NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

я получаю следующее:

[ 
    { 
     "Emp_Name": "Krishna Mamidi", 
     "Emp_Designation": "Driver", 
     "Emp_Type": "Permanent", 
     "Joining_Date": "05-MAR-2011", 
     "Salary": 10000 
    }, 
    { 
     "Emp_Name": "Aditya Reddy", 
     "Emp_Designation": "supervisor", 
     "Emp_Type": "Permanent", 
     "Joining_Date": "06-MAR-2011", 
     "Salary": 9000 
    }, 
    { 
     "Emp_Name": "Rajiv krishna", 
     "Emp_Designation": "director", 
     "Emp_Type": "Permanent", 
     "Joining_Date": "01-MAR-2011", 
     "Salary": 100000 
    } 
] 

выше в правильном формате JSON.

Получив формат NSData из вышеперечисленных, я использую следующий преобразовать то же самое в JSON словарь:

NSError *error = nil; 
id jsonObject = [NSJSONSerialization 
       JSONObjectWithData:data 
       options:NSJSONWritingPrettyPrinted error:&error]; 

NSDictionary *deserializedDictionary = nil; 

if (jsonObject != nil && error == nil) 
{ 
    if ([jsonObject isKindOfClass:[NSDictionary class]]) 
    { 
     //Convert the NSData to NSDictionary in this final step 
     deserializedDictionary = (NSDictionary *)jsonObject; 
    } 
} 

Однако «deserializedDictionary» всегда нулевой или пустой. В принципе, он никогда не появлялся внутри цикла If.

Я пытался понять это на некоторое время и не могу. Пожалуйста, помогите

+0

Массив словаря ... –

ответ

3

Ваш объект JSON массив попробовать с NSArray вместо NSDictionary.

+1

Не могу поверить, что это был такой простой ответ. Спасибо за помощь :-) –

0

Поскольку возвращенный JSON представляет собой массив, а не словарь. Попробуйте:

NSLog(@"%@", NSStringFromClass([jsonObject class])); 
+0

Да, используется массив вместо словаря и решил проблему. Спасибо за помощь –

Смежные вопросы