Как получить случайное значение словаря в swifty JSON и Alamofire - PullRequest
0 голосов
/ 26 января 2020

Я хочу получить 1 (один)"значение" в случайном порядке с "локализацией" "NL" вместо целом JSON значение response.result. Как я могу сделать это?

Пример:

{
    "id": "3",
    "value": "..",
    "localization": "NL"
} 

У меня есть файл JSON со следующим:

[{
    "id": "1",
    "value": "..",
    "localization": "NL"
}, {
    "id": "2",
    "value": "..",
    "localization": "NL"
}, {
    "id": "3",
    "value": "..",
    "localization": "NL"
},
{
    "id": "4",
    "value": "..",
    "localization": "EN"
}, {
    "id": "5",
    "value": "..",
    "localization": "EN"
}, {
    "id": "6",
    "value": "..",
    "localization": "EN"
}]

И с Alamofire я сделал запрос GET:

func getRequestWithAlamofire(){
    Alamofire.request("linkwhereIhosttheJSONFile").responseJSON { response in
        if let json = response.result.value {
        print("JSON: \(json)") // serialized json response
        }
    }
}

Спасибо!

1 Ответ

0 голосов
/ 26 января 2020

Создайте объект модели для вашего JSON

struct Entry: Codable {
  let id, value, localization: String
}

и расшифруйте его, используя JSONDecoder:

do {
  let entries = try JSONDecoder().decode([Entry].self, from: data)
} catch {
  print(error)
}

, как только вы это сделаете, вы можете легко выбрать случайный элемент, который имеет localization == "NL":

let randomElement = entries.filter { $0.localization == "NL" }.randomElement()

(Swifty JSON не требуется ни для чего из этого)

...