我使用ASIHTTPRequest来获取令牌,我收到了这个字符串:
{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}
我在这里使用了JSON Framework:http://stig.github.com/json-framework。
这是我收到字符串后的代码:
- (void)requestFinished:(ASIHTTPRequest *)req
{
NSString *responseString = [req responseString];
NSLog(@"Response: %@", [req responseString]);
// Parse the response
SBJsonParser *jsParser = [SBJsonParser new];
id content = [responseString JSONValue];
if(!content){
// Parsing error
NSLog(@"%@", jsParser.errorTrace);
}
}
NSLog(@"ID: %@", content);
我收到此错误:
-JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object key string expected\" UserInfo=0x5a418a0 {NSLocalizedDescription=Object key string expected}"
)
我的猜测是,我使用的JSON框架无法理解响应字符串格式:
{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}
还有其他解析值的方法吗?
快乐的节目, Johnie
答案 0 :(得分:4)
正在寻找一个开始和结束“围绕令牌。
{"Token":[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}
答案 1 :(得分:0)
此代码中存在错误:
SBJsonParser *jsParser = [SBJsonParser new];
id content = [responseString JSONValue];
if(!content){
// Parsing error
NSLog(@"%@", jsParser.errorTrace);
}
您实例化一个解析器jsParser
,但不要使用它来解析字符串。 (JSONValue
方法在内部实例化一个新的解析器。)然后从解析器中读取错误,该错误不用于解析字符串。