Flutter中的“无法为类型生成'fromJson'代码”错误通常发生在使用json_serializable库进行JSON序列化和反序列化时。该错误表示无法为指定类型生成fromJson方法的实现。
解决此错误的步骤如下:
dependencies:
json_annotation: <version_number>
json_serializable: <version_number>
import 'package:json_annotation/json_annotation.dart';
part 'person.g.dart';
@JsonSerializable()
class Person {
final String name;
final int age;
Person({required this.name, required this.age});
factory Person.fromJson(Map<String, dynamic> json) =>
_$PersonFromJson(json);
Map<String, dynamic> toJson() => _$PersonToJson(this);
}
flutter packages pub run build_runner build
这将根据@JsonSerializable注解生成一个名为person.g.dart的文件,其中包含fromJson和toJson方法的实现。
import 'person.dart';
import 'dart:convert';
void main() {
String jsonString = '{"name": "Alice", "age": 25}';
Map<String, dynamic> jsonMap = json.decode(jsonString);
Person person = Person.fromJson(jsonMap);
print(person.name); // 输出:Alice
print(person.age); // 输出:25
}
这样,你就可以成功使用json_serializable库进行JSON序列化和反序列化。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云