2014-09-27 138 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 – 2014-09-27 13:45:55

+0

你的代碼中沒有變量叫做「clinicDay [0]」。你的意思是Day [0]? – 2014-09-27 13:46:38

+0

是[0]只有對不起 – WISHY 2014-09-27 13:48:04

回答

2

編輯:

從您的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

在該字典中,鍵「DAY」應該有NSArray,其中包含兩個字符串「Tuesday」和「Thursday」的兩個對象。

例如。數據是你的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 2014-09-27 13:51:51

+1

嘗試運行此操作,看看是否出現錯誤。你可以發佈整個JSON文件 - 如果這是嵌套在其他東西,那當然不會工作! – 2014-09-27 13:55:12

+0

是的,它實際上是嵌套的 – WISHY 2014-09-27 13:57:48