我得到以下出错转换JSON响应转换成在NSDictionary的JSON解析...错误JSON解析,同时将响应为NSDictionary的
ERROR:-JSONValue失败。错误跟踪:( 错误域= org.brautaset.JSON.ErrorDomain代码= 3的UserInfo = 0x4d38270 “无法识别的主角” )
任何建议...
我得到以下出错转换JSON响应转换成在NSDictionary的JSON解析...错误JSON解析,同时将响应为NSDictionary的
ERROR:-JSONValue失败。错误跟踪:( 错误域= org.brautaset.JSON.ErrorDomain代码= 3的UserInfo = 0x4d38270 “无法识别的主角” )
任何建议...
其实我不是通过创建JSON对象使用api检索它..
现在我找到了该错误的原因。我没有给有效的json对象转换成nsdictionary ...因此,为了获得有效的json对象,我们必须生成有效的url来检索json对象。
感谢您的建议...
你最有可能有相同的问题,因为我...返回的数据是JSONP格式,而不是纯粹的JSON。换句话说,你会的东西要处理类似
functionCall({"Name": "Foo", "Id" : 1234, "Rank": 7});
,而不是仅仅
{"Name": "Foo", "Id" : 1234, "Rank": 7}
更多信息here
你需要分析它之前剥离字符串中的功能和括号通过JSON框架。你可以做到这一点与下面的正则表达式(隔开,使其更容易看到):
\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
以便正则表达式更新它。
我们需要查看您正在尝试解码的数据 – grahamparks 2010-11-22 13:05:55
如果您是创建应用程序然后解析的JSON对象的人,那么请验证您是否正确创建了JSON对象。同样,格雷厄姆说,粘贴数据 – Bourne 2010-11-22 13:07:38
+100000发布数据。 – JeremyP 2010-11-22 15:13:42