Swift: 将 JSON-Array 中的每一项拆分为单个文件
Swift: Split every item in JSON-Array into single file
我有一个 JSON-NSArray(用 NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
... 创建),包含一些项目并想保存其中的每个项目作为我本地磁盘上的单个文件。
我编写了以下函数来保存本地 json 文件:
func writeLocalFileFromString(dataString dataString: String, path: String, filename: String, type: String) {
do {
try dataString.writeToFile("\(path)/\(filename).\(type)", atomically: true, encoding: NSUTF8StringEncoding)
} catch let error {
print(error)
}
}
所以我试着施放每一个 json-item as! String
。文件已创建并且包含漂亮的字符串,但是它们不是有效的 json 文件。有没有更好的方法来处理这个问题?
你循环并在 json
NSDictionary 中获取 every item
,然后转换此项 json format
。而不是 print
它作为下面的代码块,您可以根据需要将其保存到文件中。
let json = try! NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary
// loop to get item
for (key, value) in json {
// data is a NSData contains your json string
let data = try! NSJSONSerialization.dataWithJSONObject([key, value], options: [])
// convert NSData to String, then do what you want
let string = String(data: data, encoding: NSUTF8StringEncoding)
print(string)
}
我有一个 JSON-NSArray(用 NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
... 创建),包含一些项目并想保存其中的每个项目作为我本地磁盘上的单个文件。
我编写了以下函数来保存本地 json 文件:
func writeLocalFileFromString(dataString dataString: String, path: String, filename: String, type: String) {
do {
try dataString.writeToFile("\(path)/\(filename).\(type)", atomically: true, encoding: NSUTF8StringEncoding)
} catch let error {
print(error)
}
}
所以我试着施放每一个 json-item as! String
。文件已创建并且包含漂亮的字符串,但是它们不是有效的 json 文件。有没有更好的方法来处理这个问题?
你循环并在 json
NSDictionary 中获取 every item
,然后转换此项 json format
。而不是 print
它作为下面的代码块,您可以根据需要将其保存到文件中。
let json = try! NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary
// loop to get item
for (key, value) in json {
// data is a NSData contains your json string
let data = try! NSJSONSerialization.dataWithJSONObject([key, value], options: [])
// convert NSData to String, then do what you want
let string = String(data: data, encoding: NSUTF8StringEncoding)
print(string)
}