入れ子になった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
残りのjsonが次のようになっているとします( -122.1407313、 37.7012704、)どのようにしてオブジェクトIDが1番目と2番目の座標を変数にプルするのですか? – savagenoob
「座標」という名前のNSArrayには、コードサンプルの末尾に「座標」という名前が含まれています。だから、 'objectAtIndex:0'を使って緯度を取得し、' objectAtIndex:1'を使って経度を取得してください。それらは両方とも浮動小数点型なので、 'NSNumber * latitude = [coordinates objectAtIndex:0];のようになります。 –