중첩 된 JSON 출력을 구문 분석하는 방법을 잘 모르겠습니다. Googles JSON 지오 코딩을 사용하고 좌표를 추출하려고합니다. 나는 다른 수준의 파싱이 필요하다고 생각하고있다. 작동하지 않는 내 코드 :IPhone Google JSON Geocoing 구문 분석
hostStr = [hostStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *hostURL = [NSURL URLWithString:hostStr];
NSString *jsonString = [[NSString alloc] initWithContentsOfURL:hostURL];
self.jsonArray = [jsonString JSONValue];
NSDictionary *coordinates = [self.jsonArray objectForKey:@"id:p1"];
NSLog(coordinates);
NSString *point = [coordinates objectForKey:@"Point"];
NSLog(point);
json으로는 :
{
"name": "11111 WASHINGTON AVE # 116 SAN PEDRO, CA 91111",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [ {
"id": "p1",
"address": "11111 Washington Ave, San Pedro, CA 91111, USA",
"AddressDetails": {
"Accuracy" : 8,
"Country" : {
"AdministrativeArea" : {
"AdministrativeAreaName" : "CA",
"Locality" : {
"LocalityName" : "San Pedro",
"PostalCode" : {
"PostalCodeNumber" : "91111"
},
"Thoroughfare" : {
"ThoroughfareName" : "Washington Ave"
}
}
},
"CountryName" : "USA",
"CountryNameCode" : "US"
}
},
"ExtendedData": {
"LatLonBox": {
"north": 37.7026153,
"south": 37.6999173,
"east": -122.1393925,
"west": -122.1420904
}
},
"Point": {
"coordinates": [ -122.1407313, 50.7012704, 0 ]
}
} ]
}
아주 좋습니다. 고맙습니다. – savagenoob
나머지 아들이있는 경우 : ( -122.1407313, 37.7012704,) 변수에 객체 ID가없는 첫 번째와 두 번째 좌표를 가져 오려면 어떻게해야합니까? – savagenoob
"좌표"라는 이름의 NSArray에는 코드 샘플 끝에 해당 값이 들어 있습니다. 그래서'objectAtIndex : 0'을 사용하여 위도를 얻고'objectAtIndex : 1'을 사용하여 경도를 얻으십시오. 그것들은 둘 다 float이므로 NSNumber * latitude = [coordinates objectAtIndex : 0];처럼 보일 것입니다. –