2016-05-24 163 views
0

我有這種格式的json響應,請看看這個。我想爲每個地址獲取經緯度值。如何從JSON響應中獲取數組對象值?

{ 
    "message":"success", 
    "data": 
    { 
     "docs": 
     [ 
      { 
       "_id":"573d8eca67c7f172cc88387e", 
       "user": 
       { 
        "phone":"8510932519)/+", 
        "image":"", 
        "name":"[email protected]%" 
       }, 
       "distance":18825, 
       "bookingNumber":"42aopy2dyry8", 
       "bookingType":0, 
       "paymentMode":"Card", 
       "tip":0, 
       "estimatedFare":51.1, 
       "estimatedDuration":"2364", 
       "created":"2016-05-18T14:49:31.231Z", 
       "stop2": 
       { 
        "address":"Malviya Nagar, New Delhi, Delhi 110017, India", 
        "location":[28.533519700000003,77.21088569999999] 
       }, 
       "stop1": 
       { 
        "address":"Ansari Nagar East, New Delhi, Delhi 110029, India", 
        "location": 
        [ 
         28.566540099999997, 
         77.2098409 
        ] 
       }, 
       "destination": 
       { 
        "address":"Saket, New Delhi, Delhi 110017, India", 
        "location": 
        [ 
         28.524578699999996, 
         77.206615 
        ] 
       }, 
       "currentLocation": 
       { 
        "address":"26, Ashok MargJ Block, Pocket J, Sector 18", 
        "location": 
        [ 
         28.568437, 
         77.32404 
        ] 
       } 
      } 
     ], 
     "total":1, 
     "limit":8, 
     "page":":1", 
     "pages":1 
    } 
} 

我需要得到lat和長時間爲每一個地址。我使用這個代碼來獲取地址,但是我將如何獲得位置數組中的0和1索引的lat和long?

dictionary = [[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]objectForKey:@"data"]; 


    NSArray *IDArray = [dictionary objectForKey:@"docs"]; 
    for (NSDictionary *Dict in IDArray) 
    { 

     NSMutableDictionary *temp = [NSMutableDictionary new]; 
     [temp setObject:[Dict objectForKey:@"_id"] forKey:@"_id"]; 

     NSString *booknumber = [Dict objectForKey:@"bookingNumber"]; 
     if([booknumber length] != 0) 
      [temp setObject:booknumber forKey:@"bookingNumber"]; 

     NSMutableDictionary *stp1 = [Dict objectForKey:@"stop1"]; 

     if ([[stp1 allKeys] containsObject:@"address"]) { 

      [temp setObject:[stp1 objectForKey:@"address"] forKey:@"address"]; 
     } 

     NSMutableDictionary *stp2 = [Dict objectForKey:@"stop2"]; 

     if ([[stp2 allKeys] containsObject:@"address"]) { 

      [temp setObject:[stp2 objectForKey:@"address"] forKey:@"address1"]; 
     } 



     NSMutableDictionary *currentloc = [Dict objectForKey:@"currentLocation"]; 

     if ([[currentloc allKeys] containsObject:@"address"]) { 

      [temp setObject:[currentloc objectForKey:@"address"] forKey:@"address1"]; 

     } 
+0

首先,加適量標籤... iOS的..但它迅速或對象 - ...另一件事是發佈您的代碼? –

+0

@Marco先生這是字典格式,所有的迴應 –

+0

你擊中的地方 –

回答

1

試試這個

NSMutableDictionary *stp1 = [Dict objectForKey:@"stop1"]; 

    if ([[stp1 allKeys] containsObject:@"address"]) { 

     [temp setObject:[stp1 objectForKey:@"address"] forKey:@"address"]; 

     // take one Temp array for fetch lat and long 

    NSArray *tempstp1 = [stp1 objectForKey:@"location"]; 
     [temp setObject:[tempstp1 objectAtIndex:0] forKey:@"latitude"]; 
     [temp setObject:[tempstp1 objectAtIndex:1] forKey:@"longitude"]; 
    } 

    NSMutableDictionary *stp2 = [Dict objectForKey:@"stop2"]; 

    if ([[stp2 allKeys] containsObject:@"address"]) { 

     [temp setObject:[stp2 objectForKey:@"address"] forKey:@"address"]; 

     // take one Temp array for fetch lat and long 

    NSArray *tempstp2 = [stp2 objectForKey:@"location"]; 
     [temp setObject:[tempstp2 objectAtIndex:0] forKey:@"latitude"]; 
     [temp setObject:[tempstp2 objectAtIndex:1] forKey:@"longitude"]; 
    } 
+0

ohh bro對不起,我忘記添加數組了,感謝它爲我工作 –

+0

@sandeeptomar - 哈哈哈,你已經提到了答案也是兄弟,('我能夠獲得地址名稱,但我將如何獲得拉特和長期0 and 1 index in location array') –

+0

是的,先生,我的錯誤哈​​哈,感謝您的支持先生 –