Скорее всего, у вас та же проблема, что и у меня ... Возвращаемые данные представлены в формате JSONP, а не в чистом формате JSON.Другими словами, вы будете иметь дело с чем-то вроде
functionCall({"Name": "Foo", "Id" : 1234, "Rank": 7});
вместо просто
{"Name": "Foo", "Id" : 1234, "Rank": 7}
Подробнее здесь
Вам понадобитсяубрать функцию и скобки из строки перед ее анализом через JSON Framework.Вы можете сделать это с помощью следующего регулярного выражения (с интервалом, чтобы его было легче увидеть):
\w+ \s? \( ( \{ .* \} ) \}
И сценарий для написания этого:
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"\\w+\\s?\\((\\{.*\\})\\)"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regex replaceMatchesInString:resultString
options:0
range:NSMakeRange(0, [resultString length])
withTemplate:@"$1"];
NSLog(@"resultString = %@", resultString);
NSLog(@"converted = %@", [resultString JSONValue]);
где resultString
является ответом на запрос URL-адреса ... Он должен быть сохранен как NSMutableString
, чтобы регулярное выражение могло его обновить.