我想我对标题不够清楚,所以它是:
我正在构建一个有facebook登录的应用程序,但我使用了facebook API中的SBJSON解析器来解析其他文档。现在我遇到的问题对我来说很奇怪。解析器没有得到我在它读取的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": "pig759@2x.png"
},
{
"id": 32,
"catunique": 5,
"imgtag": "Frog Shadow",
"imgname": "frogshadow503.jpg",
"imgbname": "frogshadow503@2x.jpg"
},
{
"id": 33,
"catunique": 3,
"imgtag": "Cat",
"imgname": "cat518.jpg",
"imgbname": "cat518@2x.jpg"
}
]
}
这是可以解析的,但如果我在"图像"对象中添加另一个项目,我会重新运行应用程序,但响应没有得到它
在我的应用程序代理中,我有以下代码用于使用解析器
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];
有人能告诉我这是服务器问题、Parser问题还是我的编码问题
首先:您使用的是一个非常古老的版本的SBJson。我建议您使用更新的版本。第二:你确定你的服务器真的在发送新的数据文件吗?试着在Safari/Firefox/Chrome中查看它。如果有额外的数据,请检查NSURLConnection是否以某种方式缓存了您的请求。(可能会在URI中附加一个随机的?r=1234123
?)