如何从本地 JSON 文件将数据加载到 ViewController [关闭]

Posted

技术标签:

【中文标题】如何从本地 JSON 文件将数据加载到 ViewController [关闭]【英文标题】:How to load data into ViewController from local JSON file [closed] 【发布时间】:2013-10-15 17:17:08 【问题描述】:

我正在开发一个 iPhone 应用程序,我需要在 TableView 中显示存储的数据。 经过一些研究,我认为 JSON 最适合存储数据。但是,我找不到任何教程来解释如何将 JSON 作为本地文件而不是 从远程来源,通常是这种情况。

有什么教程可以推荐吗?

【问题讨论】:

当您说 本地文件 时,您是说 JSON 文件存储在 Documents 目录中还是作为资源嵌入到应用程序包中? 顺便说一下,虽然 JSON 是一种很好的格式(尤其是用于与服务器交换数据),但如果这只是本地资源,property list(又名“plist”文件)可能是更简单。您使用[dictionary writeToFile:path atomically:YES]; 创建一个属性列表文件。你用NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path]; 阅读了一个plist。这比使用 JSON 更方便。 【参考方案1】:

首先:您需要加载本地 json 字符串。假设 jsonstring 在您的项目中,要加载它,首先创建指向文件的 nsstring:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"THENAMEOFTHEFILE" ofType:@"EXTENSIONOFYOUTFILE"];

二、加载文件数据:

NSData *content = [[NSData alloc] initWithContentsOfFile:filePath];

第三,解析数据:

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:content options:kNilOptions error:nil];

【讨论】:

【参考方案2】:

您可以为此使用NSJSONSerialization

NSError *deserializingError;
NSURL *localFileURL = [NSURL fileURLWithPath:pathStringToLocalFile];
NSData *contentOfLocalFile = [NSData dataWithContentsOfURL:localFileURL];
id object = [NSJSONSerialization JSONObjectWithData:contentOfLocalFile 
                                            options:opts 
                                              error:&deserializingError];

【讨论】:

NSURL 没有名为 urlWithString 的方法。如果你想从文件路径创建NSURL,你需要使用NSURL fileURLWithPath: 抱歉,大小写错误,应该是URLWithString。但你是对的 fileURLWithPath: 是文件路径的方式 我用过:NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"employees" ofType:@"json"]; NSData *data = [NSData dataWithContentsOfFile:jsonPath]; NSError *error = nil; id json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

以上是关于如何从本地 JSON 文件将数据加载到 ViewController [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 http get 从本地 Json 文件加载数据?

如何从 Snowflake Stage 加载大型 JSON 文件?

将多个图像从本地 JSON 文件加载到 tableview 时 CFNetwork 内部错误

我将如何将 JSON 文件从 web 服务保存到本地 JSON 文件?

将外部本地 json 加载到 React 中并渲染

Select2 从本地 json 文件加载数据