2015-01-20 76 views
0

我有一個由JSON文件填充的NSDictionary。 JSON文件內容(最初)如何在swift中處理由json文件生成的NSDictionary

{ 
"length" : 0, 
"locations" : [] 
} 

我想在 「位置」 添加一些元素。該元素具有以下結構:

[ 
"name" : "some_name", 
"lat" : "4.88889", 
"long" : "5.456789", 
"date" : "19/01/2015" 
] 

在接下來的代碼中,我讀解JSON文件

let contentFile = NSData(contentsOfFile: pathToTheFile) 
let jsonDict = NSJSONSerialization.JSONObjectWithData(contentFile!, options: nil, error: &writeError) as NSDictionary` 

就像你可以看到jsonDict包含JSON的信息,但在NSDictionary的對象。

在這一點上我不能添加之前提到的內容,我想插入的NSData,NSArray中,絃樂,並沒有什麼結果,我

做到這一點我想轉換「最後」的NSDictionary在JSON一次儲存後它在一個文件中。

「最終」的NSDictionary必須是這樣的

{ 
"length" : 3, 
"locations" : [ 
    { 
    "name" : "some_name", 
    "lat" : "4.88889", 
    "long" : "5.456789", 
    "date" : "19/01/2015" 
    }, 
    { 
    "name" : "some_name_2", 
    "lat" : "8.88889", 
    "long" : "9.456789", 
    "date" : "19/01/2015" 
    }, 
    { 
    "name" : "some_name_3", 
    "lat" : "67.88889", 
    "long" : "5.456789", 
    "date" : "19/01/2015" 
    } 
] 
} 

「長度」控制新元素

索引我沒有更多的想法做到這一點。在此先感謝

回答

0

如果你希望能夠修改字典,你可以把它可變:

let jsonDict = NSJSONSerialization.JSONObjectWithData(contentFile!, options: .MutableContainers, error: &writeError) as NSMutableDictionary 

所得NSMutableDictionary可以修改。例如:

let originalJSON = "{\"length\" : 0,\"locations\" : []}" 
let data = originalJSON.dataUsingEncoding(NSUTF8StringEncoding) 
var parseError: NSError? 
let locationDictionary = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers, error: &parseError) as NSMutableDictionary 

locationDictionary["length"] = 1  // change the `length` value 

let location1 = [      // create dictionary that we'll insert 
    "name" : "some_name", 
    "lat" : "4.88889", 
    "long" : "5.456789", 
    "date" : "19/01/2015" 
] 

if let locations = locationDictionary["locations"] as? NSMutableArray { 
    locations.addObject(location1)  // add the location to the array of locations 
} 

如果你現在從更新locationDictionary構建JSON,它看起來像:

{ 
    "length" : 1, 
    "locations" : [ 
     { 
      "long" : "5.456789", 
      "lat" : "4.88889", 
      "date" : "19/01/2015", 
      "name" : "some_name" 
     } 
    ] 
} 
+0

喜羅布我不能聽懂了沒有:(我想你說的,但沒有結果。 如何做一個新的NSDictionary終於將是我的JSON文件 – jhuazano 2015-01-21 01:20:04

+0

見例如,在修訂後的答案。 – Rob 2015-01-21 03:21:43

+0

Thaks很多兄弟......它工作得很好 – jhuazano 2015-01-23 19:39:15

相關問題