【问题标题】:key values from an NSDictionary formatting with "()"带有“()”的 NSDictionary 格式的键值
【发布时间】:2010-12-01 20:15:02
【问题描述】:

我试图从这个字典中提取两个值,但是我得到的值在它们周围有“()”。任何想法是什么原因造成的?

这是服务器输出:

{"Rows":[{"userid":"1","location":"beach"}]}

JSON 后的字典:

 {
    Rows =     (
            {
        location = beach;
        userid = 1;
    }
);
}

这就是我得到的:

location : (
    beach
  )
user Id : (
    1
  )

用户 ID 和位置键值都有“()”。这是代码。非常感谢。

    NSString *serverOutput= [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];


if(serverOutput > 1){

       SBJSON *jsonFF = [[SBJSON new] autorelease];
       NSError *error3 = nil;
       NSDictionary *useridDict= [jsonFF objectWithString:serverOutput error:&error3];

       NSLog(@"useridDict: %@",useridDict);

    idreturn = [[useridDict valueForKey:@"Rows"] valueForKey:@"userid"];

    locationreturn = [[useridDict valueForKey:@"Rows"] valueForKey:@"location"];

    NSLog(@" user Id : %@", idreturn);
    NSLog(@" location : %@", locationreturn);

【问题讨论】:

  • locationreturn 是如何声明的?是 NSArray 吗?
  • idreturn 和 locationreturns 是 NSStrings。谢谢
  • 它似乎将值决定为数组,虽然我不知道为什么。
  • @Wevah 谢谢,我将返回设置为数组,现在正在使用:NSString * idreturnst = [idreturn objectAtIndex:0];获得价值。

标签: iphone nsstring nsarray nsdictionary


【解决方案1】:

只是为了澄清发生了什么。解析 JSON 时,{} 作为字典返回,[] 作为数组返回。所以我们有 useridDict 一个 NSDictionary 包含解析的数据。

'useridDict' 有一个键 Rows,它返回一个 NSArray

NSArray *useridArray = [useridDict objectForKey:@"Rows"];

我们的useridArray 有一个元素,NSDictionary

NSDictionary *dict = [useridArray objectAtIndex:0];

这个dict 包含两个键:locationuserid

NSString *location = [dict objectForKey:@"location"];
NSInteger userid = [[dict objectForKey:@"userid"] intValue];

【讨论】:

    【解决方案2】:

    你可以这样使用。

    idreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0]valueForKey:@"userid"];
    
    locationreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0] valueForKey:@"location"];
    

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2010-11-20
      相关资源
      最近更新 更多