получить значение nil при анализе JSON в Swift с использованием Alamofire - PullRequest
0 голосов
/ 11 января 2019

Я анализирую "имя_ключа" из массива переключателей, но получаю нулевое значение при разборе

{
"status": "true",
"result": {
    "hubs": [
        {
            "hub_id": "1",
            "user_id": "35",
            "switch": [
                {
                    "id": "4",
                    "hub_id": "1",
                    "switch_name": "Test2",
                    "user_id": "35",
                    "serial_no": "445112",
                    "topic_sense": "rer",
                    "device_room": "25",
                    "switch_type": "LIGHTS",
                    "types_of_relay_switch": "S"
                }
            ],
            "relay": []
        }
    ],
    "switchwithouhub": []
}

}

как я разбираюсь: -

let sName = jsonDict.value(forKeyPath: "result.hubs.switch.switch_name") as? [String]

я получаю нулевое значение при разборе switch_name. помогите пожалуйста и подскажите как мне разобрать JSON

1 Ответ

0 голосов
/ 11 января 2019

Вы пытаетесь получить доступ к элементу массивов (концентраторы, коммутаторы) напрямую. Вы должны предоставить правильный индекс для доступа к элементу.

let sName = jsonDict.value(forKeyPath: "result.hubs[0].switch[0].switch_name") as? String

ОБНОВЛЕНИЕ: Вы можете использовать SwiftyJson для анализа данных JSON.

import SwiftyJSON

do { let jsonData = try JSON(data: response.data) {
  let names = jsonData["hubs"][0]["switch"].array.flatMap({ (switch) -> String in 

  return switch.name
})
}
catch {
  print("Swifty Error")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...