2012-07-19 16 views
1

我想我不是标题不够清晰,所以这里有云:SBJSON解析器不会更新它的内容

我建立具有Facebook登录的应用程序,但是我用的是SBJSON解析器的Facebook API在其中解析其他文档。现在我的问题对我来说很陌生。解析器没有获取我在它读取的JSON中创建的更新。

我用这个内容:

{ 
    "categories": [ 
     { 
      "id": 5, 
      "catunique": "f874f7d2b48b099400e9f22ea512c234c4f89d81", 
      "cattitle": "Nature", 
      "catfold": "nature" 
     }, 
     { 
      "id": 3, 
      "catunique": "edfbb81a83e37b045bfddec1c4fbbbef52b408e7", 
      "cattitle": "Bikes", 
      "catfold": "bikes" 
     } 
    ], 
    "images": [ 
     { 
      "id": 31, 
      "catunique": 5, 
      "imgtag": "Pig", 
      "imgname": "pig759.png", 
      "imgbname": "[email protected]" 
     }, 
     { 
      "id": 32, 
      "catunique": 5, 
      "imgtag": "Frog Shadow", 
      "imgname": "frogshadow503.jpg", 
      "imgbname": "[email protected]" 
     }, 
     { 
      "id": 33, 
      "catunique": 3, 
      "imgtag": "Cat", 
      "imgname": "cat518.jpg", 
      "imgbname": "[email protected]" 
     } 
    ] 
} 

这被分析确定的,但如果我在“图像”对象我添加另一个项目重新运行的应用程序和响应是没有得到它。

在我的应用程序委托我使用的解析器

这个代码
SBJSON *json = [[SBJSON alloc] init]; 

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://somedomain.com/images.json"]]; 
//[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
//[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
//set data to string with encoding 
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 
imagesJsonData = [json objectWithString:json_string error:nil]; 

有人能告诉我,如果这是一个服务器的问题,解析器的问题还是我的编码问题

回答

2

第一关:你使用了真古老版本的SBJson。我建议你使用更新的版本。第二:你确定你的服务器实际上是在发送新的数据文件吗?尝试在Safari/Firefox/Chrome中查看它。如果额外的数据在那里,请检查NSURLConnection是否以某种方式缓存您的请求。 (可能附加一个随机的?r=1234123到URI?)