繁体   English   中英

从iOS中的JSON数组解析JSON值

[英]parsing JSON values from JSON Array in iOS

我从服务器以JSON数组形式获取响应,如下所示:

{
    "status": "success",
    "data": [
        {
            "auth_Secret_ticket_refresh": "NULL",
            "userId": "10632",
            "loginEmail": "Raushan@gmail.com",
            "auth_authorizationCode": "4cb8c5e8a7f5",
            "accountType": "flickr",
            "auth_Token": "23104658-d2e65d5f94554652",
            "userName": "betterlabpune",
            "auth_subdomain": "NULL"
        },
        {
            "auth_Secret_ticket_refresh": "NULL",
            "userId": "19629",
            "loginEmail": "Ipad@gmail.com",
            "auth_authorizationCode": "8b909cb3e0e1",
            "accountType": "flickr",
            "auth_Token": "77645323118718-bac668bc2b95ad89",
            "userName": "betterlabpune",
            "auth_subdomain": "NULL"
        }
    ]
}

我想从JSON数组中为0索引提取值,为“ userId”和“ userName”提取值。 我曾尝试以多种方式提取值,以下是我的代码:

 NSMutableData * _responseData = [[NSMutableData alloc]init];
    [_responseData appendData:data];
    NSJSONSerialization *dataAsString=(NSJSONSerialization*)[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    // dataJson=(NSDictionary*)[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"data in register reponse : %@",dataAsString);
    NSJSONSerialization *json;
    NSDictionary *dataJson;
    NSError *error;

    NSDictionary *JSONE = [NSJSONSerialization JSONObjectWithData:_responseData options:0 error:nil];
    NSLog(@"JSONE : %@",JSONE);


    json=[NSJSONSerialization JSONObjectWithData:_responseData
                                         options:NSJSONReadingMutableLeaves
                                           error:&error];

      [self processData:dataJson];
   dataJson=[[NSDictionary alloc]init];
   dataJson=(NSDictionary *)json;
    NSString * status=[dataJson objectForKey:@"status"];
  NSString * message=[[dataJson objectForKey:@"data"]objectForKey:@"id"];

    NSLog(@"status : %@",status);
   NSLog(@"message: %@",message);

    NSMutableArray *argsArray = [[NSMutableArray alloc] init];
    argsArray= [dataJson valueForKeyPath:@"status"];
    NSLog(@" client Id : %@", [argsArray objectAtIndex:0]);

每次我的结果为空时都打赌。 请帮帮我。 谢谢您的宝贵时间。

尝试这个...

if ([[dataJson  valueForKey:@"status"]isEqualToString:@"success"])
    {
        NSMutableArray *tempArray=[NSMutableArray array];
        for (NSDictionary *tempDic in [dataJson valueForKey:@"data"])
        {

            [tempArray addObject:[tempDic valueForKey:@"userId"]];
        }
        NSLog(@"%@",tempArray);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM