-JSONValue 失败。错误是:令牌的非法开始 [']
Posted
技术标签:
【中文标题】-JSONValue 失败。错误是:令牌的非法开始 [\']【英文标题】:-JSONValue failed. Error is: Illegal start of token [']-JSONValue 失败。错误是:令牌的非法开始 ['] 【发布时间】:2011-09-08 14:48:38 【问题描述】:我有来自这里的 json 字符串:http://vkontakte.ru/al_video.php?act=load_videos_silent&al=1&oid=8046830
我使用 Touch json 解析器。
//received json string from ASIHTTPRequest
NSString *responseString = [request responseString];
//removing all html elements like "br"
NSString *jsonString = [self decodeHTMLEntities:responseString];
//remove 4830<!><!>0<!>4316<!>0<!> this string at the beginning
jsonString = [jsonString stringByReplacingCharactersInRange:NSMakeRange(0, 25) withString:@""];
NSArray *arr = [jsonString JSONValue]
//And here is an error in Debug console: -JSONValue failed. Error is: Illegal start of token [']
如何解决这个问题?
【问题讨论】:
看这个答案***.com/questions/6834591/… 【参考方案1】:我认为您必须将所有 ' 替换为 "。JSON 通常不支持 ' 作为标记分隔符。
使用:
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"'" withString:@"\""];
【讨论】:
Zoleas,我用一些话引用了这个( 这个。或修复您的流。不支持单引号。 您可以先将所有“替换为\”,然后将所有“替换为“。我将编辑我的帖子 用 textEdit 替换所有 ' 后,json 似乎有效。我在 jsonlint.com 和使用 JSON Bundle 的 textmate 中验证它没有任何问题。以上是关于-JSONValue 失败。错误是:令牌的非法开始 [']的主要内容,如果未能解决你的问题,请参考以下文章
Cordova processMessage 失败:堆栈:未定义(和)错误:非法访问
显然是随机错误:“防伪令牌验证失败。防伪 cookie 令牌和请求令牌不匹配。”