2017-06-02 108 views
0

我的JSON文件是这样的:的iOS:将数据写入到JSON文件编程

{ 
    "images": [ 
    "straight up kick.png", 
    "women kick.png", 
    "Taekwondo Kanji vertical.png", 
    "face kick3.png", 
    "flexibility.png", 
    "Punch.png", 
    "hook kick.png", 
    "front kick 2.png" 
] 
} 

我读上面的JSON编程象下面这样:

NSString *path = [[NSBundle mainBundle] pathForResource:@"generated" ofType:@"json"]; 
NSData *data = [NSData dataWithContentsOfFile:path]; 
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; 

NSMutableArray * jsonimages = [dict objectForKey:@"images"]; 
NSLog(@"images %@", jsonimages); 

我想添加更多的项目到数组命名作为通过以编程方式写入json文件的jsonimages。 JSON文件名是generated.json。

任何帮助,将不胜感激。

+0

你有什么试过的?你的问题是在'dict'中添加对象(注意它不可变),'jsonimages'还是将它保存下来?因为你不能写入'[NSBundle mainBundle]'。 – Larme

回答

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

    // Build the path, and create if needed. 
    NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    NSString* fileName = @"generated.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 = @"generated.json"; 
    NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName]; 

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