我正在使用此示例:http://tempered.mobi/sites/default/files/JSonArticle.zip
但它在解析时显示空值。
我的PHP代码输出:
{"news":[{"title":"DurianFM Android Application"},{"title":"Hari Raya"},{"title":"C"}]}
iPhone代码:
(void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://...........jsontest.php"];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSLog(jsonreturn); // Look at the console and you can see what the restults are
NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
// In "real" code you should surround this with try and catch
NSDictionary * dict = [[[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error] retain];
if (dict)
{
rows = [dict objectForKey:@"news"];
}
NSLog(@"Array: %@",rows);
[jsonreturn release];
}
当我检查 dict变量时,它总是显示空值。 这对我来说是个大问题。 NSData未转换为NSDictionary NSDictionary变量显示空值。
请帮忙。
我通过更改deserializeAsDictionary来解决此问题以反序列化
答案 0 :(得分:0)
你必须改变标签。
rows = [dict objectForKey:@"news"];
编辑
NSURL *url = [NSURL URLWithString:@"http://...........jsontest.php"];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSDictionary *results = [jsonreturn JSONValue];
试试这个适合我的。