-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 失败:堆栈:未定义(和)错误:非法访问

Joomla 更新失败。错误 1267 排序规则的非法混合

FAISS 搜索失败并出现模糊错误:“非法指令”或内核崩溃

显然是随机错误:“防伪令牌验证失败。防伪 cookie 令牌和请求令牌不匹配。”

删除应用扩展后仍然出现应用安装失败错误 - 此应用包含具有非法捆绑标识符的应用扩展

Xcode 7 命令因信号而失败:非法指令 4