Использование пакета XML2 JSON dart - PullRequest
0 голосов
/ 18 июня 2020

Я использую пакет XML2 JSON dart во Flutter, чтобы загрузить погоду и назначить ее отображаемым переменным. Пакет XML2 JSON распечатает все данные, но состояние неба содержит вложенные данные, как показано ниже:

<sky_condition sky_cover="OVC" cloud_base_ft_agl="4700"/>

Я просто не могу найти в документации пример того, как переходим к вложенным данным. Все остальные поля находятся на верхнем уровне, и их легко получить, как показано ниже:

<wind_speed_kt>4</wind_speed_kt>

Любая помощь будет принята с благодарностью !!?


Future<dynamic> getData(String icaoIdent) async {
   try {
     http.Response response = await http.get(link + icaoIdent);
     parse(response.body);
     xml2json.parse(response.body);
     var jsondata = xml2json.toParker();
     var mydata = json.decode(jsondata);

     stationid = mydata["response"]["data"]["METAR"]["station_id"].toString();
     rawmetar = mydata["response"]["data"]["METAR"]["raw_text"].toString();
     obstime =
         mydata["response"]["data"]["METAR"]["observation_time"].toString();
     temp = mydata["response"]["data"]["METAR"]["temp_c"].toString();
     windspeed =
         mydata["response"]["data"]["METAR"]["wind_speed_kt"].toString();
     if (windspeed == '0') {
       windDS = 'Calm';
     } else {
       windDS = '$winddirection\u00B0' + ' @ ' + '$windspeed' + ' KTS';
     }
     dewpoint = mydata["response"]["data"]["METAR"]["dewpoint_c"].toString();
     winddirection =
         mydata["response"]["data"]["METAR"]["wind_dir_degrees"].toString();
     elevation = mydata["response"]["data"]["METAR"]["elevation_m"].toString();

     visibility = mydata["response"]["data"]["METAR"]["visibility_statute_mi"]
         .toString();
     altimeter = mydata["response"]["data"]["METAR"]["altim_in_hg"].toString();

     fltcategory = mydata["response"]["data"]["METAR"]["flight_category"];

     //SkyCondition ______

     skycondition = mydata["response"]["data"]["METAR"]["sky_condition"];

     return mydata;
   } catch (e) {
     print(e);
   }
 }
}

1 Ответ

0 голосов
/ 19 июня 2020

Xml2 json также преобразуется с использованием badgerfi sh и gdata в качестве выходных данных IIR C gdata может разрешить доступ к этим полям.

...