objective-c – 在本地文件中解析JSON内容
发布时间:2020-12-16 06:48:20 所属栏目:百科 来源:网络整理
导读:如何解析存储在应用程序中的 JSON文件? 这些是我的JSON文件内容: [{"number":"01001","lieu":"paris"}{"number":"01002","lieu":"Dresden"}] 我试过以下代码: NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"json"];//cr
如何解析存储在应用程序中的
JSON文件?
这些是我的JSON文件内容: [{"number":"01001","lieu":"paris"}{"number":"01002","lieu":"Dresden"}] 我试过以下代码: NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"json"]; //création d'un string avec le contenu du JSON NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL]; //Parsage du JSON à l'aide du framework importé NSDictionary *json = [myJSON JSONValue]; NSArray *statuses = [json objectForKey:@"number"]; for (NSDictionary *status in statuses) { NSLog(@"%@ ",[status objectForKey:@"lieu"]); } 解决方法
首先,请注意JSON字符串中的两个对象之间缺少逗号.
其次,请注意您的JSON字符串包含顶级数组.所以,而不是: NSDictionary *json = [myJSON JSONValue]; 使用: NSArray *statuses = [myJSON JSONValue]; 数组中的每个元素都是一个对象(字典),它有两个名称 – 值对(键 – 对),一个用于数字,另一个用于代替: for (NSDictionary *status in statuses) { NSString *number = [status objectForKey:@"number"]; NSString *lieu = [status objectForKey:@"lieu"]; … } 您可能还想检查是否可以读取该文件: //Creating a string with the contents of JSON NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL]; if (!myJSON) { NSLog(@"File couldn't be read!"); return; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |