2014-09-27 10 views
0

У меня есть параметр ниже в моем json.Разбор ответа от JSON, ios?

{ 
"msg": "success", 
"data": [ 
    { 
     "FNAME": "test", 
     "LNAME": null, 
     "STATUS": null, 
     "MOBILE1": "1234567890", 
     "show_email": "1", 
     "Info": [ 
      { 
       "id": "73307", 
       "NAME": "demo", 
       "CONTACT": "", 
       "WORKING_HOUR1": "[\"09:00 AM\",\"09:15 AM\",\"09:30 AM\",\"09:45 AM\",\"10:00 AM\"]", 
       "WORKING_HOUR7": "", 
       "DAY": "[\"Monday\",\"Wednesday\"]" 
      } 
     ] 
    } 
] 
} 

Я не могу понять, как получить от него значения.

Если я анализирую это я получаю ошибку

 NSError *myError = nil; 
    NSDictionary *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:&myError]; 
     NSArray *results = [res objectForKey:@"data"]; 
     NSArray *Info=[results[0] objectForKey:@"Info"]; 
     NSArray *day=clinicInfo[1][@"DAY"]; 



     NSLog(@"%@", day[0]); 

Ошибка:

 'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndexedSubscript: 
+1

Это не является допустимым JSON –

+0

Там нет переменной называется «clinicDay [0]» в вашем коде. Вы имели в виду Day [0]? –

+0

Да День [0] только извините – WISHY

ответ

2

EDIT:

С вашей JSON вы хотите:

NSArray *days = json[@"data"][0][@"Info"][0][@"DAY"] 

Кроме того, пока ваш JSON действительно, дни d часов работы не находятся в массиве - они являются строкой.

Вам нужно что-то вроде этого.

{ 
    "msg": "success", 
    "data": [ 
     { 
      "FNAME": "test", 
      "LNAME": null, 
      "STATUS": null, 
      "MOBILE1": "1234567890", 
      "show_email": "1", 
      "Info": [ 
       { 
        "id": "73307", 
        "NAME": "demo", 
        "CONTACT": "", 
        "WORKING_HOUR1": [ 
         "09:00 AM", 
         "09:15 AM", 
         "09:30 AM", 
         "09:45 AM", 
         "10:00 AM" 
        ], 
        "WORKING_HOUR7": "", 
        "DAY": [ 
         "Monday", 
         "Wednesday" 
        ] 
       } 
      ] 
     } 
    ] 
} 

Во-первых, вы не используете правильный JSON.

{ 
    "DAY": [ 
     "Monday", 
     "Wednesday" 
    ] 
} 

Вы можете использовать NSJSONSerialization для разбора файла JSON, из которого вы должны получить NSDictionary.

В этом словаре должен быть NSArray для ключа «ДЕНЬ», который содержит 2 объекта обеих строк, «вторник» и «четверг».

например. Если данные ваш файл в формате JSON

NSError *jsonError = nil; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError]; 
if(!jsonError) NSArray *days = json[@"DAY"]; 
else NSLog(@"Error serialising JSON"); 
+0

Да, были ошибки. Тогда что дальше. У меня есть json. Метод, который я пытаюсь, не прав? – WISHY

+1

Попробуйте запустить это и посмотреть, появляется ли ошибка. Не могли бы вы опубликовать весь файл JSON - если он вложен в что-то еще, тогда, конечно, это не сработает! –

+0

Да, это вложенно на самом деле – WISHY

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