我想尝试将NSData转换为NSDictionary或NSArray,但有些我不能这样做,但每当尝试转换为NSString时,它将转换和门控数据,以便任何人都可以知道什么是错误,请帮我下面是代码转换
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data
options:0
error:nil];
以下代码转换为NSString
NSString * str = [[NSString alloc] initWithData:数据编码:NSUTF8StringEncoding];
但问题是,当获得这种类型的数据时,它将在数组上转换 的响应:
[[ “超人”,0],[ “糖”,0],[ “苏丹预告片”,0],[ “夏天”,0],[ “超人”,0],[ “星期日糖果” ,0],[ “升华”,0],[ “夏天16”,0],[ “超级水果”,0],[ “苏丹歌曲”,0]]
但是每当得到这种类型的响应时它就不会转换为数组格式,因为,[3 on response
响应:
[[ “ssundee”,0],[ “赛琳娜”,0],[ “SIA”,0],[ “对不起碧昂丝”,0],[ “了Smosh”,0],[“运动衫雅各布 缝匠肌 “0],[ ”skydoesminecraft“,0],[” 秘密宠物的生活 拖车”,0,[3]]
答案 0 :(得分:0)
1)您需要在id
类型变量&检查下面的响应类别。
2)您还需要检查JSON转换是否成功
NSError * error;
id result = [NSJSONSerialization JSONObjectWithData:data
options:0 error:&error];
if (!error) {
if([id isKindOfClass:[NSDictionary class]]){
//Response is Dictonary
} else if ([id isKindOfClass:[NSArray class]]){
//Response is Array
} else {
//any other format
}
} else {
//Handle error
}
答案 1 :(得分:0)
try this one
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseObject
options:kNilOptions
error:&error];