如何在 Dart 中使用 json_serializable 转换类型

问题描述

是否有某种方法可以将双值从 json 转换为 int 字段使用 json_serializable生成代码?也许一些注释?我自己还没有找到这样的东西。

来自这样的json

{
  "number": 1.0,...
}

这样上课

class MyClass {
  final int number;
  ...
}

解决方法

你可以使用一些 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 这个网站生成代码,修改最少