Разбор JSON файла без объектов Swift - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь проанализировать следующий файл JSON с помощью Swift. Я заблудился, как разобрать файл без объектов, поэтому любая помощь будет полезна. Ниже приведен пример JSON

[
    "sleeping bag",
    "Arabian camel, dromedary, Camelus dromedarius",
    "water"
]

Код, который я настроил для декодирования файла, ниже

struct ItemsStruct: Codable {
    let item: String
}

public extension Decodable{
    static func fromFile<T : Decodable>(_ filename : String, class : T.Type)->T?{
        let fileparts = filename.split(separator: ".")
        guard fileparts.count == 2 else{
            return nil
        }
        guard let path = Bundle.main.url(forResource: String(fileparts[0]), withExtension: String(fileparts[1])),
            let data = try? Data.init(contentsOf: path),
            let _struct = try? JSONDecoder().decode(T.self, from: data) else{
                return nil
        }
        return _struct
    }
}

guard let items = ItemsStruct.fromFile("objects.json", class: [ItemsStruct].self) else {return}
        for item in items{
            print(item)
        }

Я знаю, что у меня не должно быть «let item: String», но я Я не уверен, что положить в структуре, так как нет объектов.

Нужны ли другие данные JSON?

1 Ответ

1 голос
/ 22 марта 2020

Это массив String

guard let items = [String].fromFile("objects.json", class: [String].self) else {return}
for item in items{
    print(item)
}

Кстати, синтаксис довольно странный. И вы должны сделать так, чтобы метод throw передавал все возможные ошибки, а не возвращал необязательные и игнорировал все ошибки.

...