我正在尝试从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"


代替。 rhserroricc同样。

与往常一样,http://jsonlint.com是检查JSON字符串是否有效的有用资源。

关于iphone - SBJsonParser JSONValue失败。错误是:非法启动 token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7474525/

10-13 08:44