анализ ответа json с несколькими ключами с использованием flutter

#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] , либо вы можете просто перебрать массив и выполнить необходимое действие.