Я пытаюсь прочитать файл JSON, созданный мной с помощью анализатора NewtonSoft JSON.Net в другой (Windows) программе.JSON был создан компонентом JSON.Net при сериализации массива объектов.Пример JSON выглядит следующим образом (для этого примера я просто показываю два объекта):
[{"MaxLength":23,"HasSpecialChars":false,"HasUpperCase":true,"Key":"firstOne"},
{"MaxLength":0,"HasSpecialChars":false,"HasUpperCase":false,"Key":"secondOne"}]
Обратите внимание, что это массив объектов в json.
Теперь янужен некоторый код Swift, который будет читать этот JSON и записывать его после изменения значений в программе.
Что я пробовал
Я нашел эту запись SO: Чтение в файле JSON с использованием Swift Однако, чтобы получить массив объектов, эта запись использует отдельные структуры, которые можно кодировать следующим образом:
struct ResponseData: Decodable {
var thisNameShowsUpInJson: [SiteKey]
}
Это заставляет внешний массивесть собственное имя свойства в JSON.
Например, единственный код, работающий в этом посте, работает только в том случае, если мой JSON изменен и включает внешний объект с именем (SiteKey), например:
{"thisNameShowsUpInJson": [{"MaxLength":23,"HasSpecialChars":false,"HasUpperCase":true,"Key":"firstOne"},
{"MaxLength":0,"HasSpecialChars":false,"HasUpperCase":false,"Key":"secondOne"}]
}
Однакоэто не правильно для способа, которым JSON.Net записывает массив объектов в файл.
Вот мой простой класс Swift, который я хочу сериализовать и десериализовать:
class SiteKey : Codable{
var Key : String
var MaxLength : Int
var HasSpecialChars : Bool
var HasUpperCase : Bool
init(key : String, maxLength : Int,
hasSpecialChars : Bool,
hasUpperCase : Bool){
Key = key;
MaxLength = maxLength;
HasSpecialChars = hasSpecialChars;
HasUpperCase = hasUpperCase;
}
}
Я хотел бы прочитать данные из именованного файла и десериализовать данные в объекты.Затем я хотел бы сериализовать объекты в памяти обратно в файл, как в моем примере.