我正在将一组坐标保存到文档目录中。
为了添加更多的坐标数组,我构造了一个数组数组,内部数组包含坐标字典。
这样,在第一次保存时,内容将如下所示:
[
[
{
"lat":123,
"long":-0.123
},
{
"lat":234,
"long":-0.234
}
]
]
在随后的保存中,我将添加新的坐标分组。
如何在文档目录中附加到此数组,使其看起来像这样的有效JSON。
[
[
{
"lat":123,
"long":-0.123
},
{
"lat":234,
"long":-0.234
}
],
[
{
"lat":345,
"long":-0.345
}
]
]
例如。我应该阅读documents目录的内容并插入新的数组,然后覆盖原始文件(由于文件会很快变大,所以我不想这样做)。
还是有直接添加到文件的方法?
答案 0 :(得分:0)
您可以尝试
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let str = """
[
[
{
"lat":123,
"long":-0.123
},
{
"lat":123,
"long":-0.123
}
]
]
"""
let appendedStr = """
[
{
"lat":123,
"long":-0.123
},
{
"lat":123,
"long":-0.123
}
]
"""
do {
var res = try JSONDecoder().decode([[Root]].self, from: str.data(using: .utf8)!)
print(res)
let app = try JSONDecoder().decode([Root].self, from: appendedStr.data(using: .utf8)!)
res.append(app)
print(res)
let dataToStore = try JSONEncoder().encode(res)
print(dataToStore)
}
catch {
print(error)
}
}
}
struct Root: Codable {
let lat: Int
let long: Double
}
输出
[[dsdsd.Root(lat:123,long:-0.123),dsdsd.Root(lat:123,long:-0.123)]
[[dsdsd.Root(lat:123,long:-0.123),dsdsd.Root(lat:123,long:-0.123)],[dsdsd.Root(lat:123,long:-0.123),dsdsd .Root(lat:123,long:-0.123)]]
109字节