如何使用NSData
in创建 json 对象Objective C
。我在NSData
变量中有值。
问问题
12348 次
3 回答
6
您可以在 iOS 5 中像这样使用它(如果您确定您的 json 结构,您可以直接使用NSArray
或NSDictionary
进行强制转换)
NSError *jsonError;
id jsonDictionaryOrArray = [NSJSONSerialization JSONObjectWithData:myData options:NULL error:&jsonError];
if(jsonError) {
// check the error description
NSLog(@"json error : %@", [jsonError localizedDescription]);
} else {
// use the jsonDictionaryOrArray
}
于 2012-09-17T10:28:01.917 回答
2
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"youur link"]];
id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
if([jsonObjects isKindOfClass:[NSArray class]]){
//Is array
}else if([jsonObjects isKindOfClass:[NSDictionary class]]){
//is dictionary
}else{
//is something else
}
为斯威夫特编辑
do {
if let jsonArray = try JSONSerialization.jsonObject(with: data, options : .allowFragments) as? [Dictionary<String,Any>] {
} else {
print("bad json")
}
} catch let error as NSError {
print(error)
}
于 2012-09-17T10:39:17.200 回答
2
如果您在 NSData 对象中有一个值,那么您可以将其转换为 NSString 变量,如下所示
NSString *response = [[NSString alloc] initWithData:receivedData
encoding:NSUTF8StringEncoding];
已编辑...
我不确定你想要什么,但我给你字符串中的 json 数组,如下所示..
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
NSArray *arrData = [json objectWithString:responseString error:&error];
[responseString release];
你可以在数组中获取数据
希望这对你有帮助...
:)
于 2012-09-17T10:26:30.513 回答