我正在尝试从iGoogle计算器获取汇率。我已经成功运行了NSURLConnection并通过以下方法在NSData中建立了结果:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// Add the data to our complete response
[urlResponse appendData:data];
}
我现在在解析google返回的JSON:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *dataString =[[NSString alloc]initWithData:urlResponse encoding:NSUTF8StringEncoding];
// log out the result
NSLog(@" Result %@", dataString );
NSDictionary *dic = [dataString JSONValue];
NSLog(@" Dic %@", dic );
我在NSString上使用SBJSON类别来解析JSON。我的日志输出如下:
URL: http://www.google.com/ig/calculator?hl=en&q=1USD=?CRC
Result {lhs: "1 U.S. dollar",rhs: "501.756147 Costa Rican colones",error: "",icc: true}
-JSONValue failed. Error is: Illegal start of token [l]
我根本看不到JSON字符串出了什么问题。关于此的其他答案都无法反映我遇到的问题。
最佳答案
这不是有效的JSON字符串,因为所有字符串都必须在双引号内。例如,
lhs
应该
"lhs"
代替。
rhs
,error
和icc
同样。与往常一样,http://jsonlint.com是检查JSON字符串是否有效的有用资源。
关于iphone - SBJsonParser JSONValue失败。错误是:非法启动 token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7474525/