flutter 根据json自动生成实体类

1.使用自动生成实体类的网站生成实体类,网址:json2dart_for_json_serializablehttps://caijinglong.github.io/json2dart/index.html

注意,请默认选择v.1.x.x,并取一个实体类的名字

2.注意此时生成的类是有问题的

import 'package:json_annotation/json_annotation.dart'; 
  
part 'web_error_info.g.dart';


@JsonSerializable()
  class WebErrorInfo extends Object {

  @JsonKey(name: 'status')
  int status;

  @JsonKey(name: 'error')
  String error;

  @JsonKey(name: 'message')
  String message;

  WebErrorInfo(this.status,this.error,this.message,);

  factory WebErrorInfo.fromJson(Map<String, dynamic> srcJson) => _$WebErrorInfoFromJson(srcJson);

  Map<String, dynamic> toJson() => _$WebErrorInfoToJson(this);

}

part 里面的g.dart名字必须要跟你创建的文件的名字保持一致才能进行到下一步,需要把g.dart前面的文件名改为跟创建的类的文件名一致

import 'package:json_annotation/json_annotation.dart';

part 'WebErrorInfo.g.dart';

@JsonSerializable()
class WebErrorInfo extends Object {
  @JsonKey(name: 'status')
  int status;

  @JsonKey(name: 'error')
  String error;

  @JsonKey(name: 'message')
  String message;

  WebErrorInfo(
    this.status,
    this.error,
    this.message,
  );

  factory WebErrorInfo.fromJson(Map<String, dynamic> srcJson) =>
      _$WebErrorInfoFromJson(srcJson);

  Map<String, dynamic> toJson() => _$WebErrorInfoToJson(this);
}

3.控制台运行run_builder的指令,自动生成g.dart文件,命令为:

flutter packages pub run build_runner build

4.成功生成实体类

另外补充一点,自动成成的g.dart文件不要提交到远程代码仓库里面,否则就会报如下错误:

build_runner Found 3 declared outputs which already exist on disk

这个是自动生成到本地的不需要提交,如果遇到了此问题可使用如下代码进行修复,然后再重新生成

//清除之前生成的文件,如果直接运行下面的不行。可以先尝试运行这个
 flutter packages pub run build_runner clean
//可以直接运行这个
 flutter packages pub run build_runner build --delete-conflicting-outputs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值