gpt4 book ai didi

flutter - 为无效的 json 类型生成 fromJson 代码

转载 作者:行者123 更新时间:2023-12-04 07:19:24 24 4
gpt4 key购买 nike

我正在使用 freezed.我的代码如下所示:

import 'package:freezed_annotation/freezed_annotation.dart';

part 'key_state.freezed.dart';
part 'key_state.g.dart';

@freezed
class KeyState with _$KeyState {
factory KeyState({
CancelToken? token,
// ...
}) = _KeyState;

factory KeyState.initial() => KeyState();

factory KeyState.fromJson(Map<String, dynamic> json) =>
_$KeyStateFromJson(json);
}
这是 CancelToken来自 https://github.com/flutterchina/dio/blob/master/dio/lib/src/cancel_token.dart 的类(class)
这不起作用。
错误:
Could not generate `fromJson` code for `token`.
To support the type `CancelToken` you can:
* Use `JsonConverter`
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonConverter-class.html
* Use `JsonKey` fields `fromJson` and `toJson`
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/fromJson.html
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/toJson.html
package:flutter_app/redux/state/key_state.freezed.dart:114:22
我该怎么做呢?

最佳答案

该错误告诉您 CancelToken 类无法直接转换为 JSON。您的选择是:

  • 构建一个服务类,手动将 KeyState 类转换为 JSON 表示。
  • 为项目中的 CancelToken 类创建一个扩展方法,该方法向其中添加了 fromJson 和 toJson 方法。
    https://dart.dev/guides/language/extension-methods
  • 从 Github fork 代码,自己将转换方法添加到 CancelToken 类,并在您的 pubspec.yaml 文件中引用您的 repo。
    (另外,提交拉取请求以将您的更改合并到原始存储库中)

  • 您还需要为依赖类型(如 DioError、RequestOptions、Response)添加类似的转换方法。

    关于flutter - 为无效的 json 类型生成 fromJson 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68597033/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com