Ios 如何将JSON数据保存到iPhone

Ios 如何将JSON数据保存到iPhone,ios,json,sqlite,nsdictionary,nsdata,Ios,Json,Sqlite,Nsdictionary,Nsdata,我有一个json数据来显示一些信息。。但我应该生成一个“文件”将这些信息保存到我的iPhone上。想法 - (void)showInfos { NSMutableDictionary *infoDictionary = [[NSMutableDictionary alloc]init]; [infoDictionary setObject:self.totalDuration.text forKey:@"totalFrames"]; NSMutableArray *nodesArray = [

我有一个json数据来显示一些信息。。但我应该生成一个“文件”将这些信息保存到我的iPhone上。想法

- (void)showInfos {
NSMutableDictionary *infoDictionary = [[NSMutableDictionary alloc]init];
[infoDictionary setObject:self.totalDuration.text forKey:@"totalFrames"];

NSMutableArray *nodesArray = [[NSMutableArray alloc]init];
[nodesArray addObject:@{@"x":@(_zeroButton.frame.origin.x),@"y":@(_zeroButton.frame.origin.y),@"frame":self.zeroBtnLbl.text}];
[nodesArray addObject:@{@"x":@(_firstButton.frame.origin.x),@"y":@(_firstButton.frame.origin.y),@"frame":self.firstBtnLbl.text}];
[nodesArray addObject:@{@"x":@(_secondButton.frame.origin.x),@"y":@(_secondButton.frame.origin.y),@"frame":self.secondBtnLbl.text}];
[nodesArray addObject:@{@"x":@(_thirdButton.frame.origin.x),@"y":@(_thirdButton.frame.origin.y),@"frame":self.thirdBtnLbl.text}];
[nodesArray addObject:@{@"x":@(_fourthButton.frame.origin.x),@"y":@(_fourthButton.frame.origin.y),@"frame":self.fourthBtnLbl.text}];
[infoDictionary setObject:nodesArray forKey:@"nodes"];

NSLog(@"dicArray:%@",infoDictionary);
NSData *data = [NSJSONSerialization dataWithJSONObject:infoDictionary options:kNilOptions error:nil];
NSArray *retDicArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"retDicArray:%@",retDicArray);
}

您可以使用
NSData
的方法将该数据写入文件

NSData *data       = [NSJSONSerialization dataWithJSONObject:infoDictionary options:kNilOptions error:nil];
NSString *docDir   = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"MyJSONFile.json"];
[data writeToFile:filePath atomically:YES];

您可以使用
NSData
的方法将该数据写入文件

NSData *data       = [NSJSONSerialization dataWithJSONObject:infoDictionary options:kNilOptions error:nil];
NSString *docDir   = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"MyJSONFile.json"];
[data writeToFile:filePath atomically:YES];

您可以使用
NSData
的方法将该数据写入文件

NSData *data       = [NSJSONSerialization dataWithJSONObject:infoDictionary options:kNilOptions error:nil];
NSString *docDir   = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"MyJSONFile.json"];
[data writeToFile:filePath atomically:YES];

您可以使用
NSData
的方法将该数据写入文件

NSData *data       = [NSJSONSerialization dataWithJSONObject:infoDictionary options:kNilOptions error:nil];
NSString *docDir   = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"MyJSONFile.json"];
[data writeToFile:filePath atomically:YES];

您真的需要将其保存到文件中,还是只想将信息序列化到应用程序中

就我个人而言,我经常使用在应用程序中保存简单的用户信息

例如,如果要存储整数:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:newDistance forKey:@"myInteger"];
[defaults synchronize];
然后,当您想要检索它时,只需执行以下操作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int myInteger = (int)[defaults integerForKey:@"myInteger"];
你也可以储存NSArray,所以它应该适合你


如果要序列化的结构更复杂,则可以使用核心数据,但它要复杂得多。

您真的需要将其保存到文件中,还是只想将信息序列化到应用程序中

就我个人而言,我经常使用在应用程序中保存简单的用户信息

例如,如果要存储整数:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:newDistance forKey:@"myInteger"];
[defaults synchronize];
然后,当您想要检索它时,只需执行以下操作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int myInteger = (int)[defaults integerForKey:@"myInteger"];
你也可以储存NSArray,所以它应该适合你


如果要序列化的结构更复杂,则可以使用核心数据,但它要复杂得多。

您真的需要将其保存到文件中,还是只想将信息序列化到应用程序中

就我个人而言,我经常使用在应用程序中保存简单的用户信息

例如,如果要存储整数:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:newDistance forKey:@"myInteger"];
[defaults synchronize];
然后,当您想要检索它时,只需执行以下操作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int myInteger = (int)[defaults integerForKey:@"myInteger"];
你也可以储存NSArray,所以它应该适合你


如果要序列化的结构更复杂,则可以使用核心数据,但它要复杂得多。

您真的需要将其保存到文件中,还是只想将信息序列化到应用程序中

就我个人而言,我经常使用在应用程序中保存简单的用户信息

例如,如果要存储整数:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:newDistance forKey:@"myInteger"];
[defaults synchronize];
然后,当您想要检索它时,只需执行以下操作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int myInteger = (int)[defaults integerForKey:@"myInteger"];
你也可以储存NSArray,所以它应该适合你



如果要序列化更复杂的结构,可以使用核心数据,但要复杂得多。

谢谢您的回答。但是我在哪里可以看到我手机里的文件。。。找不到@midhunMP@deniz如果您正在使用iPhone模拟器,它将位于应用程序的目录中。如果您使用的是调试/开发版本,请使用Xcode的Organizer下载容器,并在文件夹中进行检查。在生产/应用商店构建中,除了读回内容之外,没有直接的方法来检查。但是,你可以在你的应用程序中启用iTunes文件共享(但你必须有获得应用程序商店批准的有效理由),但如果有人想阅读结果,他将如何获得它。。。这是主要问题。。例如,windows用户@midhunMP@deniz:与android或其他平台不同,你不能公开iOS的应用程序数据目录(除非你是它的根目录)。您应该在应用程序中实现自定义目录资源管理器,以便在应用程序中显示json文件并以编程方式读回数据,或者通过web服务发送这些文件。@deniz:如果您将文件写入Documents目录并拥有,您可以通过iTunes(也在Windows上)访问这些文件。谢谢您的回答。但是我在哪里可以看到我手机里的文件。。。找不到@midhunMP@deniz如果您正在使用iPhone模拟器,它将位于应用程序的目录中。如果您使用的是调试/开发版本,请使用Xcode的Organizer下载容器,并在文件夹中进行检查。在生产/应用商店构建中,除了读回内容之外,没有直接的方法来检查。但是,你可以在你的应用程序中启用iTunes文件共享(但你必须有获得应用程序商店批准的有效理由),但如果有人想阅读结果,他将如何获得它。。。这是主要问题。。例如,windows用户@midhunMP@deniz:与android或其他平台不同,你不能公开iOS的应用程序数据目录(除非你是它的根目录)。您应该在应用程序中实现自定义目录资源管理器,以便在应用程序中显示json文件并以编程方式读回数据,或者通过web服务发送这些文件。@deniz:如果您将文件写入Documents目录并拥有,您可以通过iTunes(也在Windows上)访问这些文件。谢谢您的回答。但是我在哪里可以看到我手机里的文件。。。找不到@midhunMP@deniz如果您正在使用iPhone模拟器,它将位于应用程序的目录中。如果您使用的是调试/开发版本,请使用Xcode的Organizer下载容器,并在文件夹中进行检查。在生产/应用商店构建中,除了读回内容之外,没有直接的方法来检查。但是,你可以在你的应用程序中启用iTunes文件共享(但你必须有获得应用程序商店批准的有效理由),但如果有人想阅读结果,他将如何获得它。。。这是主要问题。。例如,windows用户@midhunMP@deniz:与android或其他平台不同,你不能公开iOS的应用程序数据目录(除非你是它的根目录)。您应该在应用程序中实现自定义目录资源管理器,以便在应用程序中显示json文件并以编程方式读回数据,或者通过web服务发送这些文件。@deniz:如果您将文件写入Documents目录并拥有,您可以通过iTunes(也在Windows上)访问这些文件。谢谢您的回答。但是我在哪里可以看到我手机里的文件。。。找不到@midhunMP@deniz如果您正在使用iPhone模拟器,它将位于应用程序的目录中。如果您使用的是调试/开发版本,请使用Xcode的Organizer下载容器,并在文件夹中进行检查。在生产/应用商店构建中,除了读取cont之外,没有直接的方法来检查