2016-01-28 63 views
0
NSURL *url = [NSURL URLWithString:@"file://localhost/Users/admin/Desktop/JSON/vivijson.json"]; 
    NSDictionary *regDict = [[NSDictionary alloc] initWithObjectsAndKeys:self.loginString, @"login", 
                    self.nameString, @"name", 
                    self.lastNameString, @"lastName", 
                    self.emailString, @"email", 
                    self.numberString, @"number", nil]; 
    NSError *error; 
    NSMutableArray *regMutArray = [[NSMutableArray alloc] init]; 
    [regMutArray addObject:regDict]; 
    NSData *jsonConvRegArrayData = [NSJSONSerialization dataWithJSONObject:regMutArray options:NSJSONWritingPrettyPrinted error:&error]; 
    NSString *jsonRegString = [[NSString alloc] initWithData:jsonConvRegArrayData encoding:NSUTF8StringEncoding]; 
    [jsonConvRegArrayData writeToURL:url atomically:YES]; 

這種方法重寫JSON,並重新啓動它,但我需要添加一些到我的JSON。方法總是重寫json文件

+0

你的問題根本不是問題。請改善它。 – trojanfoe

+0

歡迎來到堆棧溢出!請閱讀[如何問好問題](// stackoverflow.com/help/how-to-ask)並嘗試編輯您的問題。有了高質量的問題,您將會收到更快的答案。謝謝! – SmokeDispenser

回答

1

您應該首先使用NSJSONReadingMutableContainers作爲閱讀選項,使用JSONObjectWithData將現有的JSON讀入可變數組。然後將新的數組元素添加到JSONObjectWithData返回的可變數組中,然後使用dataWithJSONObject將其轉換回JSON

以下是代碼。

NSURL *url = [NSURL URLWithString:@"file://localhost/Users/Shared/vivijson.json"]; 
    NSDictionary *regDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"self.loginString, @"login", 
          self.nameString, @"name", 
          self.lastNameString, @"lastName", 
          self.emailString, @"email", 
          self.numberString, @"number", nil]; 
    NSError *error; 
    NSMutableArray *regMutArray = [[NSMutableArray alloc] init]; 
    [regMutArray addObject:regDict]; 

    NSData *data = [NSData dataWithContentsOfURL:url]; 
    NSMutableArray *array = nil; 
    if (data) 
     array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
    if (array == nil) 
    { 
     array = [[NSMutableArray alloc] init]; 
    } 
    [array addObjectsFromArray:regMutArray]; 

    NSData *jsonConvRegArrayData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; 

    NSString *jsonRegString = [[NSString alloc] initWithData:jsonConvRegArrayData encoding:NSUTF8StringEncoding]; 
    [jsonRegString writeToURL:url atomically:true encoding:NSUTF8StringEncoding error:nil]; 
+0

謝謝,現在正在工作) – m9st