【问题标题】:-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 [']

如何解决这个问题?

【问题讨论】:

标签: objective-c ios json parsing


【解决方案1】:

我认为您必须将所有 ' 替换为 "。JSON 通常不支持 ' 作为标记分隔符。

使用:

jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"'" withString:@"\""];

【讨论】:

  • Zoleas,我用一些话引用了这个(
  • 这个。或修复您的流。不支持单引号。
  • 您可以先将所有“替换为\”,然后将所有“替换为“。我将编辑我的帖子
  • 用 textEdit 替换所有 ' 后,json 似乎有效。我在 jsonlint.com 和使用 JSON Bundle 的 textmate 中验证它没有任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
相关资源
最近更新 更多