首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在飞镖/颤振冻结库中实现toJson变换器

如何在飞镖/颤振冻结库中实现toJson变换器
EN

Stack Overflow用户
提问于 2021-07-28 09:02:10
回答 1查看 2.4K关注 0票数 1

当尝试转换时,配置文件类不能正确转换。作为toString ()函数的结果退出。

Person.dart

代码语言:javascript
复制
import 'package:adminapp/domains/Test/Profile.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part 'Person.freezed.dart';
part 'Person.g.dart';

@freezed
class Person with _$Person {
  factory Person({
    String? id,
    Profile? profile,
  }) = _Person;

  factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
}

Profile.dart

代码语言:javascript
复制
import 'package:freezed_annotation/freezed_annotation.dart';

part 'Profile.freezed.dart';
part 'Profile.g.dart';

@freezed
class Profile with _$Profile {
  factory Profile({
    DateTime? bDay,
    String? hob,
    String? rel,
  }) = _Profile;

  factory Profile.fromJson(Map<String, dynamic> json) =>
      _$ProfileFromJson(json);
}

main.dart

代码语言:javascript
复制
import 'package:adminapp/domains/Test/Person.dart';
import 'package:adminapp/domains/Test/Profile.dart';

void main(List<String> args) {
  Person p = Person(
      id: '4',
      profile: Profile(
        bDay: DateTime.now(),
        hob: "123",
        rel: 'asd',
      ));
  print(p.toJson());
}

产出:

代码语言:javascript
复制
{id: 4, profile: Profile(bDay: 2021-07-28 08:42:51.708857, hob: 123, rel: asd)}

但这不是json格式!配置文件类转换,不要重新编码!我不能把它存到消防局去!

EN

回答 1

Stack Overflow用户

发布于 2022-08-08 12:55:20

所需的有效json字符串:

代码语言:javascript
复制
{id: 4, profile: {bDay: 2022-08-08T14:54:11.781502, hob: 123, rel: asd}}

来自文件:

为了序列化冻结对象的嵌套列表,您应该在build.yaml文件中指定一个@JsonSerializable(explicitToJson: true)或更改explicit_to_json

在生成的类中将有一个小的变化,请看下面的图:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68557393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档