json - 将值从 JSON 存储到变量
问题描述
所以我的项目有一个小问题。这是我正在运行以获取 JSON 值的当前函数:
func makeCommand_GetCS() {
if let vehicle = vehicle {
_ = api.gVV(vehicle).done {
(chargeState: ChargeState) -> Void in
self.responseView.text = "Charger max current: \(String(describing: chargeState.chargerPilotCurrent))\n\(chargeState.jsonString!)"
}
}
}
这个函数给了我以下 JSON 字符串:
charger max current: Optional(13)
{
"fast_charger_type" : "MCSingleWireCAN",
"timestamp" : 1624456289921,
"est_battery_range" : 205.99000000000001,
"charge_energy_added" : 5.5099999999999998,
"charge_current_request_max" : 13,
"fast_charger_brand" : "<invalid>",
"charger_phases" : 1,
"fast_charger_present" : false,
"battery_heater_on" : false,
"time_to_full_charge" : 0,
"charge_current_request" : 7,
"battery_range" : 235.06999999999999,
"managed_charging_active" : false,
"charge_port_door_open" : true,
"charge_limit_soc_std" : 90,
"charger_actual_current" : 0,
"charge_port_latch" : "Engaged",
"charge_enable_request" : true,
"charger_voltage" : 2,
"trip_charging" : false,
"charger_pilot_current" : 13,
"charge_rate" : 0,
"conn_charge_cable" : "IEC",
"charge_limit_soc_max" : 100,
"charge_limit_soc_min" : 50,
"usable_battery_level" : 89,
"ideal_battery_range" : 235.06999999999999,
"max_range_charge_counter" : 0,
"charger_power" : 0,
"scheduled_charging_pending" : false,
"charge_miles_added_rated" : 27,
"battery_level" : 90,
"charge_to_max_range" : false,
"charge_port_cold_weather_mode" : false,
"charge_miles_added_ideal" : 27,
"managed_charging_user_canceled" : false,
"charge_limit_soc" : 77,
"charging_state" : "Complete"
}
如何仅从中获取值charge_limit_soc
并将其存储为int
变量?
编辑:ChargeState.swift:https ://pastebin.com/Z3vJsD77
解决方案
基于您在上面发布的此文件https://pastebin.com/Z3vJsD77。
您可以直接chargeLimitSOC
从此模型访问该属性,如下所示 -
let chargeLimitSOC = chargeState.chargeLimitSOC
模型中的相关部分在这里 -
open class ChargeState: Codable {
open var chargeLimitSOC: Int?
enum CodingKeys: String, CodingKey {
case chargeLimitSOC = "charge_limit_soc"
}
}
推荐阅读
- matplotlib - 无法调用 matplotlib 属性 v3.2.2
- python - 如何从 python 列表中的字符串中删除 \n1、\n2、\n3 等?
- c# - Azure Functions:在 Http 触发器和 Blob 触发器之间有一个 CorrelationId 以遵循请求
- julia - Julia 函数组合 (∘) 运算符的 ASCII 替代方案?
- java - How do I completely exhaust the items in this array?
- r - 使用 R 代码的 6 组带有标签和子/超级脚本的维恩图
- r - 如何使用来自另一个数据帧的查找值有效地填充 R 数据帧
- python - 定义中的 Python Tkinter 图像问题
- c# - 您如何解决此参数无效错误?(C#、VisualStudio、WinForms)
- json - 使用 Apache 服务 React 应用程序可以工作,但从同一服务器加载 JSON 失败并显示 503