尝试在 Objective-C 中读取 JSON 文件

2023-12-23

我正在尝试读取 Objective-C 应用程序中的 json 文件,但不幸的是我收到了 RuntimeException。确切的错误是:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'

我的 json 文件名为“Transactions.json

[{ "transaction": "300001", "date": "1/1/11", "type": "ABC", "status": "State1" },
  { "transaction": "300002", "date": "2/2/12", "type": "XYZ", "status": "State2" },
  { "transaction": "300003", "date": "3/3/13", "type": "ABC", "status": "State3" },
  { "transaction": "300004", "date": "2/2/12", "type": "XYZ", "status": "State2" },
  { "transaction": "300005", "date": "3/3/13", "type": "ABC", "status": "State3" },
  { "transaction": "300006", "date": "2/2/12", "type": "XYZ", "status": "State2" },
  { "transaction": "300007", "date": "3/3/13", "type": "ABC", "status": "State3" },
  { "transaction": "300008", "date": "2/2/12", "type": "XYZ", "status": "State2" },
  { "transaction": "300009", "date": "3/3/13", "type": "ABC", "status": "State3" },
  { "transaction": "300010", "date": "4/4/14", "type": "XYZ", "status": "State4" } ]

我读取文件的方法如下所示:

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        // Create the managed object context
        NSManagedObjectContext *context = managedObjectContext();

        // Custom code here...
        // Save the managed object context
        NSError *error = nil;
        if (![context save:&error]) {
            NSLog(@"Error while saving %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error");
            exit(1);
        }

        NSError *err = nil;
        NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"Transactions" ofType:@"json"];
        NSLog(@"Hello: %@", dataPath);
        NSArray *transaction = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath] options:kNilOptions error:&err];

                NSLog(@"Transaction list: %@", transaction);

    }

    return 0;
}

我不明白的是,当我读取 JSON 文件时,为什么 NSData 对象会显示为 null?谁能看到我做错了什么吗?仅供记录,我尝试检查 JSON 文件中是否存在无关空格,并尝试将 JSON 文件放置在应用程序文件夹中的不同位置,但没有任何效果。

预先感谢所有回复的人。


根据您的源代码和评论,我假设该应用程序是作为 “命令行工具”。在这种情况下,“目标会员资格”复选框实际上是 对于自定义资源文件(例如 JSON 文件)禁用。

作为解决方法:

  • 转到目标的“构建阶段”。
  • 单击“添加构建阶段”并选择“添加副本文件”。
  • 在新的构建阶段,单击+并选择您的 JSON 文件。

对于命令行工具,您选择哪个“目标”似乎并不重要。 我用“目的地:资源”对其进行了测试。 JSON 文件被复制到相同的位置 包含可执行文件的目录。现在

[[NSBundle mainBundle] pathForResource:@"Transactions" ofType:@"json"];

应该返回该路径,您可以从应用程序中读取该文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试在 Objective-C 中读取 JSON 文件 的相关文章

  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • 将第 3 方库 ZXing 导入 Xcode

    我尝试了多种方法将第 3 方库 ZXing 导入我的 iOS 应用程序 但所有方法都很痛苦 或者根本不起作用 如果有人可以建议我做错了什么 或者提出导入 ZXing 等库的更好方法 我将非常感激 一定比这个容易 这就是我所做的 结果是 My
  • 您是否标记 UIView 或将它们保留为属性?

    这主要是一个风格问题 但自从我开始为 iPhone 编程以来 我一直很好奇其他人的想法是什么 当您的 iPhone 应用程序中有一个 UIView 并且需要在应用程序的其他位置访问它时 通常在视图控制器中的另一个函数中 您是否喜欢用整数标记
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 在react中使用map方法渲染JSON API

    我对 JSON 对象 数组和映射方法的语法和结构有困难 我是 React 新手 正处于学习的初始阶段 这是我粘贴在下面的 JSON 文件代码 cloud Asia availability last15Min 100 last24Hour
  • 如何将单引号转义为双引号转义为单引号

    以下是符合此描述的命令行示例 curl http dumbdomain com solr collection2 update json H Content type application json d add doc uid 79729
  • 如何判断 NSObject 是否具有某个属性?

    假设在 Apple API 1 0 版中 有一个 NSFoo 类 其属性为 color API 1 1 添加了属性 size 我想知道是否可以使用 getter myFoo size myFoo respondsToSelector sel
  • 使用 C# 反序列化 JSON 以返回项目

    我有以下内容 documents keyPhrases search results Azure Search fast search indexing sophisticated search capabilities Build gre
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐