Pokud získáváte data z nějaké služby, často je dostanete v JSON. Dart pro tyto případy má speciální třídu JSON, která se nachází v Dart SDK dart:convert. V našem případě se soustředíme hlavně na její statickou metodu decode. Když dostanete z jiné stránky/handleru třeba tento řetězec: {"web":"pacman"}, jak získat obsah „proměnné“ web?
JSON.decode vrací typ dynamic. Myslel jsem si že to bude totéž jako any v TypeScriptu, ale to jsem se mýlil, proto JSON.decode(...).web vyvolávalo výjimku. Je třeba přetypovat dynamic na některý z typů Dart’u, který ve skutečnosti vrací JSON.decode. V mém případě to byl typ Map(další typy jsou například List, String, aj.) a s ním pak pracujete jako s polem, takže kód vypadá nějak takto:
Map dartPage = JSON.decode('{"web":"pacman"}') as Map;
String domain = dartPage["web"];Pokud nevíte jak získat data z webové služby v Dartu, kouknete na můj starší článek: 👻 Stránka se odstěhovala a nenechala kontakt.