Objective c 将字典键值转换为NSNumber

Objective c 将字典键值转换为NSNumber,objective-c,json,nsdictionary,Objective C,Json,Nsdictionary,我刚刚成功地完成了我的第一个JSON请求和反序列化信息,现在我需要做的就是知道如何从我的字典中收集一些值。以下是请求的内容: @implementation ViewController { GMSMapView *mapView_; } - (void)viewDidLoad { [super viewDidLoad]; // Make the URL connection in order to download JSON/XML data. NSStri

我刚刚成功地完成了我的第一个JSON请求和反序列化信息,现在我需要做的就是知道如何从我的字典中收集一些值。以下是请求的内容:

@implementation ViewController {
    GMSMapView *mapView_;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Make the URL connection in order to download JSON/XML data.
    NSString *urlAsString = @"weburlgoeshere...";
    NSURL *url = [NSURL URLWithString:urlAsString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

    // Error and success message handling.
    [NSURLConnection
    sendAsynchronousRequest:urlRequest
    queue:queue
     completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
         if([data length] > 0 &&
            error == nil){
             NSData *jsonData = [NSData dataWithContentsOfURL:url];

             if (jsonData != nil){
                 NSError *error = nil;

                 NSDictionary *result = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
                 if(error == nil)
                 NSLog(@"%@", [result valueForKey:@"merchants"]);
             }

         }
         else if ([data length] == 0 &&
         error == nil){
         NSLog(@"Nothing was downloaded");

         }
         else if (error != nil){
         NSLog(@"Error happened = %@", error);

         }


     }];

}
这是注销到控制台的内容:

branches =         (
                        {
                city = "......";
                country = "United States";
                countryIsoCode = USA;
                distanceInKms = "8.31";
                distanceInMiles = "5.16";
                id = 7952205;
                latitude = ".......";
                longitude = "........";
                name = ".......";
                state = ......;
                stateIsoCode = .....;
                street = ".........";
                telephone = "";
            }
        );
        id = 174535;
        logoUrl = ".......";
        name = ".......";

因此,我将所有这些值存储在一个名为“result”的NSDictionary中,我想知道如何在NSNumber中收集和存储纬度和经度的特定键值。我想我可能需要用一个块快速枚举其中的大部分,然后相应地处理。这里的目的是使用这些值并将其显示在地图上。任何帮助都将不胜感激!谢谢大家!

您可以通过这种方式访问密钥所需的值

NSArray * array = [dic objectForKey:@"branches"];
NSDictionary *furtherNames = array[0];
NSNumber *latitude = [NSNumber numberWithFloat:[[furtherNames objectForKey:@"latitude"] floatValue]];
NSNumber *longitude = [NSNumber numberWithFloat:[[furtherNames objectForKey:@"longitude"] floatValue]];
您需要观察的是()=>Array of objects,{}=>Dictionary。因此,相应地遍历它们


希望这有帮助。

您可以通过这种方式访问密钥的所需值

NSArray * array = [dic objectForKey:@"branches"];
NSDictionary *furtherNames = array[0];
NSNumber *latitude = [NSNumber numberWithFloat:[[furtherNames objectForKey:@"latitude"] floatValue]];
NSNumber *longitude = [NSNumber numberWithFloat:[[furtherNames objectForKey:@"longitude"] floatValue]];
您需要观察的是()=>Array of objects,{}=>Dictionary。因此,相应地遍历它们


希望这能有所帮助。

好的,我刚刚意识到我可以创建一个@property来存储字典中的值。我认为真正奇怪的是,当我调用以下命令时,其中一个键(纬度和经度)出现了:[dic allKeys]。也许是因为它们是嵌套的?有什么想法吗?+1,您可以使用更新的语法结果[@“Branchs”][0][@“latitude”]@用户2745444,如果您记录所有键,您将看不到嵌套键,因此您的字典(dic)必须指向其中一个嵌套字典。这非常有效!我能够抓住我所需要的确切值!我是否必须使用fastEnumeration块来分别创建所有这些值的数组?谢谢好的,我刚刚意识到我可以创建一个@property来存储字典中的值。我认为真正奇怪的是,当我调用以下命令时,其中一个键(纬度和经度)出现了:[dic allKeys]。也许是因为它们是嵌套的?有什么想法吗?+1,您可以使用更新的语法结果[@“Branchs”][0][@“latitude”]@用户2745444,如果您记录所有键,您将看不到嵌套键,因此您的字典(dic)必须指向其中一个嵌套字典。这非常有效!我能够抓住我所需要的确切值!我是否必须使用fastEnumeration块来分别创建所有这些值的数组?谢谢