我想我对标题不够清楚,所以在这里:
我正在构建一个具有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"
}
]
}
这是解析好的,但是如果我在“images”对象中添加另一个项目,我会重新运行该应用程序并且响应没有得到它。
在我的App Delegate中我有使用解析器的代码
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];
有人可以告诉我这是服务器问题,解析器问题还是我的编码问题
答案 0 :(得分:2)
首先:您使用的是非常古老的版本的SBJson。我建议你使用更新版本。第二:你确定你的服务器实际上是在发送新的数据文件吗?尝试在Safari / Firefox / Chrome中查看它。如果有额外数据,请检查NSURLConnection是否以某种方式缓存您的请求。 (也许随机?r=1234123
附加到URI?)