mirror of
https://github.com/confirmedcode/Lockdown-iOS.git
synced 2025-12-21 12:14:02 +01:00
40 lines
1.4 KiB
Swift
40 lines
1.4 KiB
Swift
//
|
|
// JSONSerialization+Extentions.swift
|
|
// Lockdown
|
|
//
|
|
// Created by Aliaksandr Dvoineu on 06.04.23.
|
|
// Copyright © 2023 Confirmed Inc. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
extension JSONSerialization {
|
|
|
|
static func loadJSON(withFilename filename: String) throws -> Any? {
|
|
let fm = FileManager.default
|
|
let urls = fm.urls(for: .documentDirectory, in: .userDomainMask)
|
|
if let url = urls.first {
|
|
var fileURL = url.appendingPathComponent(filename)
|
|
fileURL = fileURL.appendingPathExtension("json")
|
|
let data = try Data(contentsOf: fileURL)
|
|
let jsonObject = try JSONSerialization.jsonObject(with: data, options: [.mutableContainers, .mutableLeaves])
|
|
return jsonObject
|
|
}
|
|
return nil
|
|
}
|
|
|
|
static func save(jsonObject: Any, toFilename filename: String) throws -> Bool{
|
|
let fm = FileManager.default
|
|
let urls = fm.urls(for: .documentDirectory, in: .userDomainMask)
|
|
if let url = urls.first {
|
|
var fileURL = url.appendingPathComponent(filename)
|
|
fileURL = fileURL.appendingPathExtension("json")
|
|
let data = try JSONSerialization.data(withJSONObject: jsonObject, options: [.prettyPrinted])
|
|
try data.write(to: fileURL, options: [.atomicWrite])
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
}
|