Swift Filter Json файл в пакете на основе строки запроса - PullRequest
2 голосов
/ 20 марта 2020

Я загружаю файл json из комплекта приложения следующим образом:

if let fileURL = Bundle.main.url(forResource: "Picker.bundle/Data/MyCodes", withExtension: "json") {

    URLSession.shared.dataTask(with: fileURL) { (data, response, error) in

        do {

            if let d = data {

                let decodedLists = try JSONDecoder().decode([Codes].self, from: d)


                DispatchQueue.main.async {

                    self.code = decodedLists

                }

            } else {

                print("No Data")

            }

        } catch {

            print ("Error")

        }

    }.resume()

}

Можно ли в любом случае применить фильтр, чтобы он считывал только код, имена которого начинаются с определенного string

Пример.

строка запроса будет "Can", будет проходить по дереву json и возвращать только потомков с Can i их именем?

1 Ответ

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

После разбора JSON вы можете фильтр результат,

struct Codes {
    var title: String
}

DispatchQueue.main.async {
   //filter codes if title starts with "Can"
   self.code = decodedLists.filter { $0.title.hasPrefix("Can") }
   //filter codes if title contains the substring "Can"
   self.code = decodedLists.filter { $0.title.contains("Can") }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...