2011-05-25 39 views
0

我开发一个iPhone应用程序,我送这个网址给Facebook: https://graph.facebook.com/search?type=checkin&access_token=ACCESS_TOKEN如何管理Facebook的API响应数据

和Facebook的回答是这样的:

{ 
    "data": [ 
     { 
     "id": "2081746282701", 
     "from": { 
      "name": "USER1", 
      "id": "xxxxxxxxxx" 
     }, 
     "place": { 
      "id": "xxxxxxxxx", 
      "name": "\u03a0\u03b1\u03bb\u03bb\u03ac\u03b4\u03b9\u03bf", 
      "location": { 
       "city": "xxxxxxxx", 
       "country": "Greece", 
       "latitude": xxxxx, 
       "longitude":xxxxx 
      } 
     }, 
     "application": { 
      "name": "Facebook for iPhone", 
      "id": "6628568379" 
     }, 
     "created_time": "2011-05-25T01:22:00+0000", 
     "likes": { 
      "data": [ 
       { 
        "id":"xxxxxx", 
        "name": TaggedUsers" 
       }, 
       { 
        "id": "xxxxxx", 
        "name": "tagged user" 
       } 
      ] 
     } 
     }, 
     { 
     "id": "xxxxxxx", 
     "from": { 
      "name": "UserWhich puplish this", 
      "id": "740646984" 
     }, 
     "tags": { 
      "data": [ 
       { 
        "name": "XXXXXX", 
        "id": "xxxxxxxxxx" 
       } 
      ] 
     }, 
     "place": { 
      "id": "xxxxxxxxxxxxx", 
      "name": "xxxxxxxx", 
      "location": { 
       "latitude": xxxxxx, 
       "longitude": xxxxxx 
      } 
     }, 
     "application": { 
      "name": "Facebook for Android", 
      "id": "350685531728" 
     }, 
     "created_time": "2011-05-23T17:18:54+0000", 
     "likes": { 
      "data": [ 
       { 
        "id": "xxxxxxx", 
        "name": "xxxxxxxxx" 
       } 
      ] 
     } 
     } 
} 

我的问题是我将如何管理此字符串以导出长整数位置以及签入的用户?我认为NSCaseInsensitiveSearch不会执行这个技巧,因为没有唯一的变量可以搜索。例如,“数据”被放置在被响应的字符串的开始处,并且在每次登记之前,但是被放置并且在被标记的用户之前!

回答

2

这是JSON:JavaScript Object Notation。

根据根元素的不同,您可以很容易地将其解码为一个NSDictionary或NSArray,其中json-framework。在此之后,它是一个类似于结构的树,具体取决于返回的JSON。

提到的框架为NSObject提供了一个易于使用的类别,它提供了方法JSONValue。

实例来解码JSON you'v收到:

NSString *myJson = @"..."; 
NSDictionary *decodedJson = [myJson JSONValue]; 

现在你可以使用快速列举或直接访问(objectForKey:)来检索您感兴趣的数据

NSArray *users = [decodedJson objectForKey:@"data"]; 

foreach(NSDictionary *user in users =) { 
    NSLog(@"user's id: %@", [user objectForKey:@"id"]); 
    NSDictionary *fromData = [user objectForKey:@"from"]); 
    NSLog(@"user is from: %@", [fromData objectForKey:@"name"]); 
    NSLog(@"user is from id: %@", [fromData objectForKey:@"id"]); 
    // and so on .. 
} 
+0

你。确定这是与xcode4? – user622203 2011-05-25 20:14:36

+0

@ user622203当然是,为什么不呢? – 2011-05-25 20:17:20

+0

我已经按照instrunctions(下载它并复制我的项目下的所有类),并且正在编译8个错误。 – user622203 2011-05-25 20:22:33