0

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

4 回答 4

2

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

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

 NSDictionary *tempDict = [jsonString objectFromJSONString];

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

于 2012-09-29T20:48:49.507 回答
2

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

于 2012-09-30T05:22:04.910 回答
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

}

祝你好运!

于 2012-09-29T20:44:09.040 回答
-1

使用 NSJSONSerialization 怎么样?

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * tempDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
于 2012-09-29T20:44:00.050 回答