从Nsstring中提取特定字段

时间:2015-04-07 10:40:08

标签: ios objective-c json

我想从NSString中提取特定字段的值,我认为这是一个Json字符串。

我想做的是

NSString *picurl = [NSString stringWithFormat:@"%@",[result objectForKey:@"picture"]];

在这条指令之后,我正在接受picurl

{
    data =     {
        "is_silhouette" = 1;
        url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfp1/v/t1.0-1/c15.0.50.50/p50x50/10354686_10150004552801856_220367501106153455_n.jpg?oh=0d6173b2f424d27585b00d7b7190a10c&oe=55AB362F&__gda__=1437591769_4adb584761f22e225809b0a8f10ffbca";
    };
}

从上面我想提取url.How我可以这样做。我对Json一无所知。

4 个答案:

答案 0 :(得分:2)

这意味着它是一个字典对象所以;

NSDictionary *pictureData = [result objectForKey:@"picture"];
NSDictionary *data = [pictureData objectForKey:@"data"];
NSString *picurl = [data objectForKey:@"url"];

答案 1 :(得分:1)

首先使用dataUsingEncoding将NSString转换为NSData:这样的方法:

NSData *data = [[result objectForKey:@"picture"] dataUsingEncoding:NSUTF8StringEncoding];

然后使用JSONObjectWithData方法并将其添加到数组:

NSArray *responseArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

如果你的字符串是字典格式,那么使用它:

NSDictionary *responseDictionary = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]lastObject];

答案 2 :(得分:0)

一行答案:

NSString *picurl = result[@"picture"][@"data"][@"url"];

答案 3 :(得分:0)

根据我的意见,不要写这类代码:

self.name = [jsonDict objectForKey:@"name"];
NSString *picurl = [NSString stringWithFormat:@"%@",[result objectForKey:@"picture"]];

您可以使用JSONModel

  • JSONModel是iOS的数据模型框架 只需在模型中声明属性,使用与JSON中的键相同的名称即可!繁重的工作是自动完成的。

因此,只需在接口文件中声明您的属性:

@interface MyModel: JSONModel
@property (strong, nonatomic) NSString* id;
@property (strong, nonatomic) NSString* name;
(etc...)
@end

JSONModel继承的initWithDictionary:方法会将传入的JSON密钥与模型的属性进行匹配,并复制匹配的密钥。您的实现文件中不需要任何代码。 You should take a moment to star and start watching JSONModel on GitHub: