Skip to content

zhahao/json_serializable.dart

 
 

Repository files navigation

对json_serializable的修改,增加对int,double,num,bool,String类型自动转换功能,对比.g.dart文件

原来:

Person _$PersonFromJson(Map<String, dynamic> json) {
  return Person(
    firstName: json['firstName'] as String,
    height: json['height'] as double,
    age: json['age'] as int,
  );
}

如果height属性不是double类型,那么json['height'] as double这段代码会抛出异常,导致后面代码无法继续执行。

现在:

Person _$PersonFromJson(Map<String, dynamic> json) {
  return Person(
    firstName: JsonSerializableSafety.jsonToString(json['firstName']),
    height: JsonSerializableSafety.jsonToDouble(json['height']),
    age: JsonSerializableSafety.jsonToInt(json['age']),
  );
}

接入

dev_dependencies:
# 删除原来的json_serializable,改成它
  json_serializable:
    git:
      url: [email protected]:zhahao/json_serializable.dart.git
      path: json_serializable/
      ref: 'json_serializable-v3.5.1_value_safety'

使用

被解析的JsonBean.dart导入import 'package:json_serializable_safety/json_serializable_safety.dart';

About

对json_serializable的修改,增加转换中类型的安全保护。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 99.5%
  • Shell 0.5%