iOS JSONKit objectWithData返回null

时间:2012-09-29 20:35:40

标签: iphone objective-c ios json jsonkit

我正在使用JSONKit来解析JSON字符串,出于某种原因,当尝试将JSON字符串分配到NSDictionary时,它返回null


JSONDecoder *jsonDecoder = [[JSONDecoder alloc] initWithParseOptions:JKParseOptionNone];        
NSData *jsonData = [NSData dataWithBytes:[jsonString UTF8String] length:[jsonString length]];
NSDictionary *tempDict = [jsonDecoder objectWithData:jsonData];

jsonString包含内容,tempDict等于NULL

谢谢!

4 个答案:

答案 0 :(得分:2)

如果您想支持4.x,请不要使用NSJSONSerialization。它仅在5.0中提供。

相反,你只需要使用JSONKit,就像这样:

 NSDictionary *tempDict = [jsonString objectFromJSONString];

您无需将JSON字符串转换为NSData即可将其序列化。

答案 1 :(得分:2)

我不确定,但您需要检查您的json是否是有效的json,为此您可以使用http://jsonlint.com/。我有时因为无效的json而面临这个类似的问题。希望这有帮助。

答案 2 :(得分:1)

为什么要使用jsonKit? iOS有一个非常好的JSONSerialization类......你可以像这样使用它:

NSData *returnData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *jsonParsingError = nil;

NSDictionary *returnDictionary = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:&jsonParsingError];

if (!jsonParsingError) {

    //Do your stuff here

}
祝你好运!

答案 3 :(得分:-1)

如何使用NSJSONSerialization?

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * tempDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];