我有以下JSON数据:
[{"id":"value","first_name":"value","last_name":"value"},
{"id":"value","first_name":"value","last_name":"value"},
{"id":"value","first_name":"","last_name":""}]
然后我实现了我的代码:
NSError *err;
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://abcd.com/index.php?r=WS/Employee"]];
NSData *dataFromUrl = [NSData dataWithContentsOfURL:url];
NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:dataFromUrl options: NSJSONReadingMutableContainers error:&err];
if (err)
NSLog(@"JSONObjectWithData error: %@", err);
为此,我收到以下错误消息:
JSONObjectWithData错误:错误Domain = NSCocoaErrorDomain Code = 3840 "操作无法完成。 (可可误差3840。)" (JSON文本 没有从数组或对象和选项开始,不允许片段 set。)UserInfo = 0x9c900f0 {NSDebugDescription = JSON文本没有启动 使用数组或对象和选项来允许未设置片段。}
请帮助我获取这些数据。
答案 0 :(得分:1)
我认为你应该在请求标题中添加更多内容。尝试将NSData转换为NSString并查看为您提供的内容
答案 1 :(得分:1)
尝试此代码....
NSURL * url =[NSURL URLWithString:getDataURL];
NSData * data=[NSData dataWithContentsOfURL:url];
json =[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
答案 2 :(得分:1)
我通过替换
中的PHP文件中的请求标头来解决这个问题echo "<meta charset=\"utf-8\">";
到
ob_start();
header('Content-type: application/json');
答案 3 :(得分:0)
NSError *err;
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://abcd.com/index.php?r=WS/Employee"]];
NSData *dataFromUrl = [NSData dataWithContentsOfURL:url];
NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:dataFromUrl options: NSJSONReadingMutableContainers error:&err];
if (err)
NSLog(@"JSONObjectWithData error: %@", err);
只需改变你的行
NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:dataFromUrl options: NSJSONReadingMutableContainers error:&err];
与
NSJSONSerialization *jsonData = [NSJSONSerialization JSONObjectWithData:dataFromUrl options: NSJSONReadingMutableContainers error:&err];
NSMutableArray *array = [NSMutableArray arrayWithArray:(NSArray *)jsonData];
NSLog(@"Success:%@", array);