2015-04-07 64 views
0

我想從NSString中提取特定字段的值,我認爲這是Json字符串。從Nsstring中提取特定字段

什麼,我試圖做的是

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沒有任何想法。

+0

它看起來像picurl實際上是一個NSDictionary對象嗎? –

+0

更好地瞭解返回的對象的類型並直接訪問它。 –

+0

嗨,你可以添加[結果objectForKey:@「圖片」]到NSDictionary.From字典,你可以得到的URL –

回答

2

這將意味着它是一個字典對象,所以;

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

一號線回答:

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

首先使用轉換的NSString NSData的dataUsingEncoding:方法是這樣的:

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]; 
0

根據我來代替編寫代碼LIKE這種類型:

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: