Урок 51: "Основы работы с данными - работаем с JSON"

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • Пожертвования - boosty.to/lazyloadflutter
    ______
    Канал с анонсами в телеграм - t.me/lazyload_flutter
    ______
    Группа в телеграм - t.me/learnDartFlutter
    ______
    Группа в вк - club203125105
    ______
    Код урока для подписчиков Boosty - github.com/JonFir/lazyload_fl...
    ______
    0:00 - Вступление
    0:45 - Что такое JSON
    2:33 - Типы данных
    4:30 - Разбираем пример JSON
    21:00 - Пишем сериализацию руками
    43:20 - Используем json_serializable

Komentáře • 44

  • @dmitry9088
    @dmitry9088 Před 2 lety +5

    Везде про JSON пишут. Оказывается вообще не сложная тема) Спасибо за урок!

  • @bpsnwbpsnw
    @bpsnwbpsnw Před 5 měsíci

    никогда не писал комменты на ютубе, но сейчас реально от благодарности распирает. спасибо!!!

  • @user-wj6il8xo6l
    @user-wj6il8xo6l Před rokem +1

    Cпасибо за лучшее объяснение работы с json!

  • @nursikturlambayev4891
    @nursikturlambayev4891 Před 2 lety +8

    Спасибо! Очень полезный урок!
    Если при кодогенерации JSON, у кого выходит вот такая ошибка "Generator cannot target libraries that have not been migrated to null-safety.",
    обратите внимание на версии json_annotation и json_serializable версии пакетов должны поддерживаться в environment SDK

  • @vafinruslan56
    @vafinruslan56 Před 3 lety +9

    Спасибо! Интересно было узнать как работать с JSON с помощью кодогенерации 👍

  • @Grig_Grigoryan
    @Grig_Grigoryan Před 2 lety +5

    Пол дня мучался, пришёл к некоторым выводам, может помогу кому-то, если "address.g.dart" не создаётся, сначала сохраните этот файл Ctrl + S, и только потом - flutter pub run build_runner build
    Если же при создании "address.g.dart" выдаёт ошибку, мне помогли следующие команды в терминале:
    -flutter clean
    -flutter pub cache repair
    -flutter pub run build_runner clean
    И наконец-то
    -flutter pub get
    -flutter pub run build_runner build

  • @daviddzgoev9024
    @daviddzgoev9024 Před 3 lety +3

    Наконец то я понял. Спасибо.

  • @omelchenkoaleks
    @omelchenkoaleks Před 2 lety +1

    Спаибо! Спасибо! Вы реально момогаете и я думаю всем. Всего вам наиулчшего!

  • @senpai3274
    @senpai3274 Před 3 lety +6

    большое спасибо за урок. Респект автору за такой контент.🔥

  • @mishakalyna
    @mishakalyna Před 3 lety +2

    Спасибо за полезнейший контент!

  • @lifewear.reseller
    @lifewear.reseller Před 2 lety +3

    Было бы круто увидеть один урок по factory, что и как.

  • @legion4491
    @legion4491 Před 2 lety

    Очень хорошее объяснение ! Спасибо! Жаль что только сейчас набрел на этот канал, а не раньше.

  • @poteryal_trusy
    @poteryal_trusy Před 3 lety +3

    спасибо!

  • @vladislavfilipoff8620
    @vladislavfilipoff8620 Před 3 lety +2

    Как всегда на высоте 🤓🔥

  • @volga_code
    @volga_code Před 2 lety

    спасибо, Евгений, за такой труд!

  • @NikolaShoOtNik
    @NikolaShoOtNik Před 2 lety

    Отличный урок. Большое спасибо!

  • @igorfedoseev5500
    @igorfedoseev5500 Před 2 lety

    Спасибо за очередной отличный урок !

  • @user-yh2rt1xw3y
    @user-yh2rt1xw3y Před 2 lety

    Разложил по полочкам. Всё по теме.

  • @user-te1yz5gc1e
    @user-te1yz5gc1e Před 3 lety +1

    Спасибо большое за видео

  • @Raimkhodzhanov
    @Raimkhodzhanov Před 2 lety +1

    Отличный урок, спасибо! try catch, конечно нужно народ приучать везде использовать ) Кстати, интересно - как по феншую обрабатывать исключение, я имею ввиду где регистрировать событие (по аналогии с журналом приложения сервера) и как сообщать разработчику об исключении

  • @michaelmichael9809
    @michaelmichael9809 Před 3 lety +2

    Хм..С ссылкой коммент потерло, но попробую без ссылки . Первое - классные, внятные уроки! Firebase - очень жду). И еще - после тучи попыток рекомендую приложение в VS Code - Dart Data Class Generator (Beta). Да, бета. Но на месте, быстро и без ошибок, генерирует модель для очень развесистого Json (из погодного API), без ручной работы, которая необходима в json_serializable.

    • @LensesColor
      @LensesColor Před 2 lety

      Я вот недавно исспользовал этот плагин VS Code - Dart Data Class Generator (Beta), но у меня почемуто криво сгенерировало, полезли ошибки. Попробовал описаную выше в видео генерацию и все нормально заработало

  • @user-ho4cn9yp9x
    @user-ho4cn9yp9x Před 3 lety +1

    супер!

  • @jomagsm4189
    @jomagsm4189 Před 3 lety +4

    Спасибо за урок жаль что не будет урока про Dio

    • @ArtemFun
      @ArtemFun Před 3 lety +1

      про хайв и провайдер походу тоже не будет ( печалька (

  • @n000x
    @n000x Před 2 lety

    Большое спасибо

  • @mansurmaratov8133
    @mansurmaratov8133 Před 3 lety +2

    Круто

  • @dan.gorbunov
    @dan.gorbunov Před rokem

    Привет!)) Как всегда пересматриваю снова. Подскажи в этом курсе есть уроки по firebase?

  • @yakut54
    @yakut54 Před 10 měsíci +1

    В Новосибирске не улицы Батурина 👻

  • @DartMitai
    @DartMitai Před 3 lety +3

    Чисто теоретически, в будущем будет про Flutter + gRPC protobuf?))
    спасибо за отличные видео уроки!

  • @aleksandrsviridenko5079
    @aleksandrsviridenko5079 Před rokem +1

    Первый раз работал с JSON, пытался сделать как Евгений. в итоге пару часов ловил ошибку. Ошибка была в том, что я JSON файл неправильно оформил, поставил просто лишние запятые в конце файла..... будьте внимательны

  • @morrigan_ghost
    @morrigan_ghost Před 2 lety +1

    спасибо! Надеюсь после блокировки ютуба вы продолжите выкладывать видеоролики и сюда, для аудитории не из России. Если это будет возможно

  • @vasiliykoperdas7257
    @vasiliykoperdas7257 Před 2 lety

    лайк👍

  • @kissel0ff
    @kissel0ff Před 9 měsíci

    в JS это делается в одну строку, я в шоке )

  • @user-uk2jc3rv8e
    @user-uk2jc3rv8e Před 2 lety

    Вы в начале сказали что Json это строка, а потом в методе fromJson вы считаете что вам должен прилететь массив.
    Не правильно ли будет в методе fromJson получать на вход строку и там её парить?
    Или я что-то пропустил?

  • @alonealone6368
    @alonealone6368 Před 2 lety +1

    а если нам надо json в dto класс перегнать , есть для этого что-то подобное?

  • @azatgimosyan8908
    @azatgimosyan8908 Před 2 lety

    like

  • @mevgen8
    @mevgen8 Před 2 lety

    А как указать, что поле в джейсоне будет типа "дата"?

    • @LearnDartFlutter
      @LearnDartFlutter  Před 2 lety

      в json нет такого типа)

    • @mevgen8
      @mevgen8 Před 2 lety

      @@LearnDartFlutter я неправильно выразился. Имел ввиду, есть ли какая-то аннотация у того генератора кода, с помощью которой можно было бы ему подсказать что вот "это" поле - это не просто строка, а дата, т.е. чтобы он после прочтения значения поля и сконвертировал бы его в наше поле класса типа "дата"

  • @andreyf6728
    @andreyf6728 Před 2 lety

    Доброго времени суток!
    Можно обратиться с одной просьбой? )
    Мы в команде переписываем один проект с RN на Flutter так как уперлись в потолок производительности RN. Проект с огромными списками на сокетах.Уже готовы в принципе на релиз но уже поймали несколько раз баг когда команда на бекенде добавляет поле (ключ) в JSON и мы ловим баг что модель не готова принять дополнительное поле так как оно не описано.
    Например у меня такая модель
    @freezed
    class Instrument with _$Instrument {
    const factory Instrument({
    @Default('') String symbol,
    @Default('') String description,
    }) = _Instrument;
    factory Instrument.fromJson(Map json) => _$InstrumentFromJson(json);
    }
    А бекенд взяли и добавили еще одно поле ключ например "String typeName" и соответсвенно Instrument.fromJson() метод мне ничего не отпадёт так как такое поле не описано в моей модели. Есть какой то нормальный путь как это обойти не дергая на горячую json['symbol'] и т.д.
    Не подскажете со своего опыта как можно обойти такой баг?
    Заранее благодарю
    Андрей.

    • @LearnDartFlutter
      @LearnDartFlutter  Před 2 lety

      Не очень понял проблемы. Если добавить новое поле то клиент будет корректно работать, и получать данные, но конечно, данное поле он не получит, потому что не знает про него.
      Так что если у вас что то добавили на бекенде и вам надо его использовать, меняйте модель на клиенте.