如何在ios中写入json文件

2024-03-24

这里我正在读取和写入一个 json 文件。

读取正确,但当我写入文件时,它不会在 json 文件中写入数据。

这是我的代码。

//reading Json file....
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"bookmark" ofType:@"json"];

NSData *content = [[NSData alloc] initWithContentsOfFile:filePath];
NSArray *bookmarkJson=[NSJSONSerialization JSONObjectWithData:content options:0 error:nil];
//this contains array's of dictionary....
NSDictionary *newBookmark=@{@"index":@"1.1.1.1",@"text":@"Header",@"htmlpage":@"page_name"};

//take new array to add data with previous one
NSMutableArray *temp=[[NSMutableArray alloc]initWithArray:bookmarkJson];
// add object to new array...
[temp insertObject:newBookmark atIndex:0];

//now serialize temp data....
NSData *serialzedData=[NSJSONSerialization dataWithJSONObject:temp options:0 error:nil];

NSString *saveBookmark = [[NSString alloc] initWithBytes:[serialzedData bytes] length:[serialzedData length] encoding:NSUTF8StringEncoding];

//now i write json file.....    
[saveBookmark writeToFile:@"bookmark.json" atomically:YES encoding:NSUTF8StringEncoding error:nil];

在“saveBookmark”(NSString)对象中,我得到了正确的文件格式,但在 bookmark.json 文件中,我没有得到任何新值。

请在这件事上给予我帮助......


编辑:正如@IulianOnofrei正确指出的那样,使用文档目录来读取/写入文件而不是资源目录。

使用这些方法来读写数据,你的问题应该可以解决:

- (void)writeStringToFile:(NSString*)aString {

    // Build the path, and create if needed.
    NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString* fileName = @"bookmark.json";
    NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];

    if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
        [[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil];
    }

    // The main act...
    [[aString dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO];
}

- (NSString*)readStringFromFile {

    // Build the path...
    NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString* fileName = @"bookmark.json";
    NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];

    // The main act...
    return [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding];
}

代码来自此处找到的另一个 SO 答案:在 iPhone 上写入和读取文本文件 https://stackoverflow.com/questions/4964274/writing-and-reading-text-files-on-the-iphone

当然,第一次尝试从文档目录中读取此文件时,您将不会得到任何内容,因此第一步可能是将文件复制到那里(如果该文件不存在)。

希望这可以帮助。

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

如何在ios中写入json文件 的相关文章

  • Android Volley:意外响应代码 405

    我的 Android Volley JsonObjectRequest 遇到 onErrorResponse 并出现以下问题 BasicNetwork performRequest Unexpected response code 405
  • React-Native 中的导航抽屉

    我是反应原生的新手 不介意我问一个基本问题 我想知道 实现抽屉式导航的分步过程是什么 推荐链接这个链接 https github com react native community react native side menu usage
  • 如何正确设置UIView的alpha? [iOS]

    I have UIView有很多子视图 UILabel UITextView 等 如果为主视图设置 alpha 0 6 则所有子视图均采用此 alpha 如何单独设置主视图的alpha view setBackgroundColor UIC
  • [UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]

    我正在使用表格视图来显示消息 我使用了下面的代码 UIView chatView self bubbleView NSString stringWithFormat message from YES self chatArray addOb
  • iOS 9.3.2 破坏 MPMusicPlayerController

    我正在尝试将 Apple Music 集成到我的应用程序中 直到今天早上我才设法使其完美运行 更新到 iOS 9 3 2 后 一切都不一样了 权限系统的工作原理相同 SK云服务控制器 https developer apple com li
  • 在 Swift 2.0 中以横向模式使用 UIImagePickerController

    我正在编写一个仅限 LandScape 的 iPad 应用程序 我需要从库中拍照以发送数据库 但图像上传屏幕仅适用于纵向模式 如何将其更改为横向模式 我读过一些关于 UIPickerControllerDelegate 不支持横向模式的内容
  • 将 Php 数组编码为 json [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想对我的 php 数组进行编码 A
  • 单击时未调用 UITableView didSelectRowatIndexPath

    非常非常奇怪 它在任何地方都有效 但在这里 void tableView UITableView aTableView didSelectRowAtIndexPath NSIndexPath indexPath MyViewControll
  • WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

    我有一些全屏网页内容 当窗口使用调整大小事件更改大小时 我会更新这些内容 window onresize function var width window innerWidth var height window innerHeight
  • 如何使用 PHP 通过 JSON 发送 HTML 元素?

    以下功能 try query this gt pdo gt prepare SELECT FROM bookings WHERE TourID AND dTourDate and Status NOT LIKE Cancelled quer
  • 无法为 FacebookSDK 4 构建模块“FBSDKCoreKit”

    我在将 Facebook SDK 3 更新到 4 时遇到问题 当我添加框架时 它已成功添加 但是当我添加头文件时出现错误 无法构建模块 FBSDKCoreKit 不知道原因 在设置中 允许非模块化包含在框架模块中 设置为YES在构建设置中解
  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • 如何构建 Objective-C 静态库? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些 Objective C 类 目前在 Cocoa 应用程序 Mac OS X 和 Cocoa Touch 应用程序 iOS 中
  • 在 iPhone 上搜索 PDF

    经过两天尝试使用 Quartz 从 PDF 中读取注释后 我成功做到了并且发布我的代码 https stackoverflow com questions 4080373 get pdf hyperlinks on ios with qua
  • Xcode 8:使用 iOS 9.3 基础 SDK 编译?

    我在 Xcode 8 0 beta 8S128d 中将 iOS 应用程序升级到 Swift 3 0 我以为一切都已准备就绪 并将其上传到 iTunes Connect 当我点击 提交审核 时 它给了我一个包含 26 个错误的列表 每个嵌入式
  • 如何对数组的数组进行 JSON_MODIFY?

    我的结构看起来像这样 Declare layout NVARCHAR MAX N Sections SectionName Section1 SectionOrder 1 Renders RenderName Render1 RenderO
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • 如何在 SceneKit 中以编程方式将 png 纹理包裹在立方体周围

    我是 SceneKit 的新手 试图让一些基本的东西工作 但到目前为止还没有取得多大成功 由于某种原因 当我尝试将 png 纹理应用于 CNBox 时 我最终除了黑色之外什么也没有 这是我在 viewDidLoad 中的简单代码片段 let
  • 自定义信息窗口上的按钮未接收 ios 中的操作

    我在 iOS 应用程序中使用 Google 地图 并实现了一个自定义信息窗口来显示标记的标题 现在 我在该自定义信息窗口上添加了一个按钮 但我的问题是按钮操作方法没有被调用 自定义信息窗口 h import
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我

随机推荐

  • Dropwizard ExceptionMapper:验证原始标头字段

    有谁知道如何从请求中获取原始标头字段 我想验证客户端是否会收到 html 或只是纯 文本响应 我可以在异常映射器的 toResponse 方法中获取此字段吗 我像这篇文章中一样创建了异常映射器 http gary rowe com agil
  • 使用温莎城堡解析 HttpControllerContext

    In the ASP NET Web API http www asp net web api HttpControllerContext实例提供了很多有关当前环境的信息 包括当前请求的URI 如果服务依赖于此类信息 例如请求 URI 则应
  • 在 Windows 上使用 Python 3.7 安装 pycairo

    我正在尝试安装 pycairo 尽管我在互联网上找到了这些内容 但我无法安装它 我确实 pip install pycairo 但它要求我安装 Visual Basic Build Tool 我做到了 但当时不起作用 我尝试了在网上找到的很
  • C++编译引入错误

    我在 Visual Studio 2010 中有一个多线程 C windows 项目 它使用 Qt 5 1 1 和 OpenCV 2 4 8 当我构建它时Debug模式一切运行正常 但是当我构建它时Release模式下程序崩溃 两种配置几乎
  • Keycloak/Undertow/JBoss-CLI - 从环境变量设置“web-context”

    我对 Wildfly Undertow 和 JBoss CLI 设置 Keycloak 的 Web 上下文有疑问 环境变量似乎并未在 undertow 本身中得到解决 但其他环境变量似乎已得到解决 我创建了以下 CLI 脚本 subsyst
  • Spring MVC 中的 PropertyPlaceholderConfigurer

    我在我的项目中使用 Spring MVC 我在中定义了详细信息web xml像这样
  • 对 mysql 中的结果进行排名(mysql 相当于 oracle 中的“dense_rank()”或“row_number()”函数)

    以下是样本数据 dept id salary 10 10000 10 20000 10 20000 10 30000 20 50000 20 60000 我想对部门 ID 进行分组 然后按升序生成工资的排名值 输出应如下所示 dept id
  • 如何获得 Rails 路线以将扩展保留为 id 的一部分?

    我定义了以下路线 map resources images only gt index new destroy 当我做一个rake routes我得到以下信息 image DELETE images id format action gt
  • ServiceStack.DataAnnotations 缺少属性定义?

    我正在尝试使用 ServiceStack DataAnnotations 中的 ServiceStack 属性装饰器 但是当我在 MSVS 对象浏览器中查看 ServiceStack DataAnnotations 命名空间时 只有以下类型
  • 为所有测试配置一次 jest 超时

    根据文档 可以使用以下命令将默认异步超时从 5000ms 增加玩笑对象 https jestjs io docs en jest object 更具体地说 通过使用玩笑 settimeout 超时 https jestjs io docs
  • 如何过滤 django-taggit 顶部标签

    假设您有一个数据库 其中包含在 Django 应用程序后面运行的 User 对象 你想使用django taggit标记用户对象 以便您可以使用一些方便的过滤来检索子组 此外 您还有一个仪表板 您希望在其中显示有关已用标签的有趣统计信息 以
  • 防止 fork() 复制套接字

    我有以下情况 伪代码 function f pid fork if pid 0 exec to another long running executable no communication needed to that process
  • C# 逐字字符串换行符:CRLF、CR 或 LF?

    我今天遇到了一个有趣的问题 我的测试在构建机器上始终失败 而即使使用相同的配置 它们在我的机器上运行得很好 当我查看故障转储中 Assert AreEqual 输出的差异时 我看不到任何不同 经过一系列调查后 我发现测试用例源代码中的逐字字
  • Common Lisp 中的 LET 与 LET*

    我理解 LET 和 LET 并行绑定与顺序绑定 之间的区别 并且作为理论上的问题 它非常有意义 但有没有什么情况你曾经真正需要过 LET 在我最近查看的所有 Lisp 代码中 您可以将每个 LET 替换为 LET 而无需进行任何更改 编辑
  • 酒吧升级降级了我的主包

    这是我的依赖项列表 dependencies browser any polymer any polymer elements any angular any lawndart any validate any http utils any
  • 如何使用c#在现有的word文档中插入图像

    我正在与word and c 使用我的代码拍摄快照并将其保存在特定文件夹中 例如 C Temp 现在我想将图像保存到现有的 Word 文档中 非常感谢任何有关简短代码示例的帮助 会更喜欢使用Microsoft Office Interop
  • 如何在给定的文本片段中找到匹配括号或大括号的位置?

    许多文本编辑器和 IDE 都有一项功能 当光标放置在其中一对中的开始或结束字符上时 会突出显示匹配的括号 方括号或大括号 给定文本文件中左括号或右括号的位置 使用什么算法来查找匹配括号的位置 请记住 这些字符可以嵌套 因此只需向前或向后扫描
  • 关于创建包含按钮的图库视图的问题?

    我创建了一个包含按钮的图库 示例代码如下 public class Adapter extends BaseAdapter private Context mContext public ImageAdapter Context c mCo
  • 如何在 Bootstrap 下拉悬停上添加延迟

    我正在尝试为引导下拉菜单添加延迟 我已经添加了 css 以使下拉列表在悬停时显示 你可以在这里测试一下http www bootply com YcVBzvXqrR http www bootply com YcVBzvXqrR 这是我的
  • 如何在ios中写入json文件

    这里我正在读取和写入一个 json 文件 读取正确 但当我写入文件时 它不会在 json 文件中写入数据 这是我的代码 reading Json file NSString filePath NSBundle mainBundle path