当尝试转换时,配置文件类不能正确转换。作为toString ()函数的结果退出。
Person.dart
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
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
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());
}产出:
{id: 4, profile: Profile(bDay: 2021-07-28 08:42:51.708857, hob: 123, rel: asd)}但这不是json格式!配置文件类转换,不要重新编码!我不能把它存到消防局去!
发布于 2022-08-08 12:55:20
所需的有效json字符串:
{id: 4, profile: {bDay: 2022-08-08T14:54:11.781502, hob: 123, rel: asd}}来自文件:
为了序列化冻结对象的嵌套列表,您应该在
build.yaml文件中指定一个@JsonSerializable(explicitToJson: true)或更改explicit_to_json。
在生成的类中将有一个小的变化,请看下面的图:

https://stackoverflow.com/questions/68557393
复制相似问题