[英]Getting error when parsing JSON iOS
从Web服务获取字符串后,我需要解析它们。 但是出了点问题。
这是我的代码;
NSString *responseString = [request responseString];
NSLog(@"response String = %@",responseString);
NSData *tempData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSString *innerJson = [NSJSONSerialization JSONObjectWithData:tempData
options:NSJSONReadingAllowFragments error:&error];
NSLog(@"innerJson = %@",innerJson);
NSArray *entries = [NSJSONSerialization JSONObjectWithData:[innerJson dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:&error];
NSLog(@"entries = %@",entries);
for (NSDictionary *entry in entries) {
NSLog(@"entry = %@",entry);
NSString *message = [entry objectForKey:@"message"];
NSLog(@"message = %@",message );
NSString* result = [entry objectForKey:@"result"];
NSLog(@"result = %@", result);
}
这是我的输出;
innerJson = {"result": false,"message":"message!"}//I need parse this string.
entries = {
message = "message!";
result = 0;
}
entry = message
我在for
循环中遇到错误。 我究竟做错了什么? 感谢您的关注和咨询。
问题在于
NSArray *entries = [NSJSONSerialization
您将结果分配给NSArray,并且JSON对象是一个字典,因此您应该将其分配给NSDictionary。 然后,不需要for
循环-您可以执行以下操作:
NSDictionary *entries = [NSJSONSerialization JSONObjectWithData:[innerJson dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error];
NSLog(@"entries = %@",entries);
NSString *message = [entries objectForKey:@"message"];
NSLog(@"message = %@",message );
NSString* result = [entries objectForKey:@"result"];
NSLog(@"result = %@", result);
在NSJSONSerialization文档中阅读更多详细信息。
我不确定-但我想这段代码应该对您有用:
NSString *responseString = [request responseString];
NSLog(@"response String = %@",responseString);
NSData *tempData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
/* assuming it is a dictionary */
NSDictionary *inner = [NSJSONSerialization JSONObjectWithData:tempData
options:NSJSONReadingAllowFragments error:&error];
NSLog(@"inner = %@",inner);
for(id key in inner) {
id value = [inner objectForKey:key];
NSLog(@"key=%@, value=%@", key, value);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.