#json #flutter #http #dictionary #dart
#json #flutter #http #словарь #dart
Вопрос:
Я пытаюсь получить значения этих ключей из этого ответа json:
{
"wlan": {
"channel": 1,
"ssid": "WLAN-25UR7J",
"mac": "00:17:91:80:22:96",
"inet": [
{
"netmask": "255.255.255.0",
"ip": "192.168.2.112",
"family": "IPv4"
}
],
"stationinfo": {
"signal": -48,
"channelwidth": 0,
"bitrate": 72.2
},
"mode": "station",
"encryption": "WPA2-PSK"
}
}
Я мог бы получить значения из ключа wlan, используя этот метод.
json.decode(response.body)['wlan']['channel']
Но я не работал с остальными значениями, такими как получение маски сети или битрейта, например.
Комментарии:
1. Вы пробовали использовать
json.decode(response.body)['wlan']['inet'][0]['netmask']
?2. большое спасибо, нет, я этого не делал, это сработало для ключа inet, но как, пожалуйста, для stationinfo json.decode(response.body)[‘wlan’] [‘inet’] [1] [‘signal’] или json.decode(response.body) [‘wlan’][‘inet’][‘stationinfo’][0][‘signal’]
3. [‘wlan’][‘stationinfo’] [‘signal’] отлично сработал, еще раз спасибо
Ответ №1:
Для маски сети вы можете получить к ней доступ следующим образом:
json.decode(response.body)['wlan']['inet'][0]['netmask']
Для битрейта вы можете получить к нему доступ с помощью:
json.decode(response.body)['wlan']['stationinfo']['bitrate']
Если значения внутри любого ключа представляют собой массив, либо получите к ним доступ через index like value[0]
, либо вы можете просто перебрать массив и выполнить необходимое действие.