NSDictionary
是 Objective-C 中的一个类,用于存储键值对。在处理 JSON 数据时,通常会将 JSON 对象转换为 NSDictionary
,以便更方便地检索和操作数据。
NSDictionary
是一个不可变的字典类,用于存储键值对。NSDictionary
。NSDictionary
中获取对应的值。假设我们有以下 JSON 字符串:
{
"name": "John",
"age": 30,
"city": "New York"
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// JSON 字符串
NSString *jsonString = @"{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
// 将 JSON 字符串解析成 NSData
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
// 解析 JSON 数据为 NSDictionary
NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
if (error) {
NSLog(@"Error parsing JSON: %@", error);
return 1;
}
// 从 NSDictionary 中检索数据
NSString *name = jsonDict[@"name"];
NSNumber *age = jsonDict[@"age"];
NSString *city = jsonDict[@"city"];
NSLog(@"Name: %@", name);
NSLog(@"Age: %@", age);
NSLog(@"City: %@", city);
}
return 0;
}
NSDictionary
提供了类型安全的键值对存储和检索。NSDictionary
): 创建后不能修改。NSMutableDictionary
): 创建后可以随时修改。原因: JSON 字符串格式不正确或包含非法字符。
解决方法: 使用 NSJSONSerialization
的错误参数捕获详细错误信息,并进行相应处理。
原因: 请求的键在 NSDictionary
中不存在。
解决方法: 在访问键值前,使用 objectForKey:
方法并检查返回值是否为 nil
。
id value = jsonDict[@"nonExistentKey"];
if (value == nil) {
NSLog(@"Key does not exist");
}
通过以上步骤和方法,可以有效地使用 NSDictionary
来处理和检索 JSON 数据。
领取专属 10元无门槛券
手把手带您无忧上云