sandeep tomar sandeep tomar - 6 months ago 13
Objective-C Question

How to get array object values from JSON response?


I have a json response in this format please look at this.I want to get lat and long values for every address.


{
"message":"success",
"data":
{
"docs":
[
{
"_id":"573d8eca67c7f172cc88387e",
"user":
{
"phone":"8510932519)/+",
"image":"",
"name":"Niraj@%"
},
"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
}
}



i need to get lat and long for every address. i am using this code for get the address, but how will i get lat and long for 0 and 1 index in location array?


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"];

}

Answer

try this

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"];
  }
Comments