Как приводить типы с помощью json_serializable в Dart

Есть ли способ передать двойное значение из json в поле int с помощью json_serializable для генерации кода? Может быть, аннотация? Сам пока не нашел ничего подобного.

Из json вот так

      {
  "number": 1.0,
  ...
}

Чтобы так учиться

      class MyClass {
  final int number;
  ...
}

1 ответ

Вы можете использовать какое-либо расширение vsCode или Android Studio или сопоставить ключ с классом

Нравиться

      import 'dart:convert';

SampleClass sampleClassFromJson(String str) => SampleClass.fromJson(json.decode(str));

String sampleClassToJson(SampleClass data) => json.encode(data.toJson());

class SampleClass {
    SampleClass({
        this.number,
    });

    final int number;

    factory SampleClass.fromJson(Map<String, dynamic> json) => SampleClass(
        number: json["number"] == null ? null : json["number"],
    );

    Map<String, dynamic> toJson() => {
        "number": number == null ? null : number,
    };
} 

Большую часть времени я использую https://app.quicktype.io, этот сайт генерирует код с минимальной модификацией

Другие вопросы по тегам