我正在从开关阵列中解析“ switch_name”,但在解析时却得到了nil值
{
"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
答案 0 :(得分:-1)
您正在尝试直接访问数组的元素(集线器,开关)。您必须提供正确的索引才能访问该项目。
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")
}