Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android flatter-json_serializable fromJson:The方法';[]和#x27;被调用为空_Android_Ios_Json_Dart_Flutter - Fatal编程技术网

Android flatter-json_serializable fromJson:The方法';[]和#x27;被调用为空

Android flatter-json_serializable fromJson:The方法';[]和#x27;被调用为空,android,ios,json,dart,flutter,Android,Ios,Json,Dart,Flutter,在我的应用程序中,我将数据导出到JSON。但是,当我尝试导入JSON文件时,它会抛出一个错误,如下所示: E/颤振:[错误:颤振/shell/common/shell.cc(184)]省道错误:未处理的异常: NoSuchMethodError:对null调用了方法“[]”。 收件人:空 已尝试呼叫: #0 Object.noSuchMethod(dart:core/runtime/libobject\u patch.dart:50:5) #1$RecipesModelFromJson(file

在我的应用程序中,我将数据导出到JSON。但是,当我尝试导入JSON文件时,它会抛出一个错误,如下所示:

E/颤振:[错误:颤振/shell/common/shell.cc(184)]省道错误:未处理的异常: NoSuchMethodError:对null调用了方法“[]”。 收件人:空 已尝试呼叫: #0 Object.noSuchMethod(dart:core/runtime/libobject\u patch.dart:50:5) #1$RecipesModelFromJson(file:///home/stube/IdeaProjects/Flutter_Recipe/lib/JSON/recipes.g.dart:11:11) #2新的RecipesModel.fromJson(包:Time2Eat/JSON/recipes.dart:20:63) #3$RecipesModelFromJson(file:///home/stube/IdeaProjects/Flutter_Recipe/lib/JSON/recipes.g.dart:32:22) #4新的RecipesModel.fromJson(包:Time2Eat/JSON/recipes.dart:20:63) #5 RecipebookState.createRecipeJson(包:Time2Eat/recipe/recipebook.dart:111:32) #6 RecipebookState.getPath(包:Time2Eat/recipe/recipebook.dart:123:9) #7 RecipebookState.build。(包装:Time2Eat/recipe/recipebook.省道:185:19) #8动画儿童表演(包装:颤振、速度、刻度盘/src/动画儿童。飞镖:60:24) #9.INKRESPONSTATE.\u handleTap(包装:颤振/src/材料/ink\u井。省道:507:14) #10_inkrestate.build。(包装:颤振/src/材料/墨水井。省道:562:30) #11 GestureRecognizer.invokeCallback(包:flatter/src/signatures/recognizer.dart:102:24) #12 TapGestureRecognitor.\u检查(软件包:颤振/src/手势/tap.省道:242:9) #13 TapGestureRecognitor.handlePrimaryPointer(软件包:颤振/src/手势/tap.dart:175:7) #14 PrimaryPointerGestureRecognizer.handleEvent(包:颤振/src/signatures/recognizer.dart:315:9) #15点路由器调度(包:颤振/src/signatures/pointer\u路由器。dart:73:12) #16 PointerRouter.route(包:flatter/src/signatures/pointer\u router.dart:101:11) #17 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent(包:flift/src/signatures/binding.dart:180:19) #18 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent(包:flift/src/signatures/binding.dart:158:22) #19 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent(包:flift/src/signatures/binding.dart:138:7) #20 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushpointerreeventqueue(包装:颤振/src/手势/binding.dart:101:7) #21 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket(包:flatter/src/signatures/binding.dart:85:7) #22 _invoke1(省道:ui/hooks.dart:173:13) #23_dispatchPointerDataPacket(dart:ui/hooks.dart:127:5)

recipes.g.dart,由json_serializable生成:

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

RecipesModel _$RecipesModelFromJson(Map<String, dynamic> json) {
  return RecipesModel(
      json['name'] as String,
      json['image'] as String,
      json['description'] as String,
      json['favorite'] as int,
      json['timestamp'] as String,
      json['preperation'] as String,
      json['creation'] as String,
      json['resting'] as String,
      json['people'] as String,
      json['backgroundColor'] as String,
      (json['zutaten'] as List)
          ?.map((e) => e == null
              ? null
              : ZutatenModel.fromJson(e as Map<String, dynamic>))
          ?.toList(),
      (json['zubereitung'] as List)
          ?.map((e) => e == null
              ? null
              : ZubereitungModel.fromJson(e as Map<String, dynamic>))
          ?.toList())
    ..recipeModel =
        RecipesModel.fromJson(json['recipeModel'] as Map<String, dynamic>);
}

Map<String, dynamic> _$RecipesModelToJson(RecipesModel instance) =>
    <String, dynamic>{
      'name': instance.name,
      'image': instance.image,
      'description': instance.description,
      'favorite': instance.favorite,
      'timestamp': instance.timestamp,
      'preperation': instance.preperation,
      'creation': instance.creation,
      'resting': instance.resting,
      'people': instance.people,
      'backgroundColor': instance.backgroundColor,
      'zutaten': instance.zutaten,
      'zubereitung': instance.zubereitung,
      'recipeModel': instance.recipeModel
    };

ZutatenModel _$ZutatenModelFromJson(Map<String, dynamic> json) {
  return ZutatenModel(
      json['zutat'] as String,
      json['number'] as String,
      json['measure'] as String
  );
}

Map<String, dynamic> _$ZutatenModelToJson(ZutatenModel instance) =>
    <String, dynamic>{
      'zutat': instance.zutat,
      'number': instance.number,
      'measure': instance.measure
    };

ZubereitungModel _$ZubereitungModelFromJson(Map<String, dynamic> json) {
  return ZubereitungModel(json['number'] as String, json['steps'] as String);
}

Map<String, dynamic> _$ZubereitungModelToJson(ZubereitungModel instance) =>
    <String, dynamic>{'number': instance.number, 'steps': instance.steps};
//**************************************************************************
//JsonSerializableGenerator
// **************************************************************************
RecipesModel$RecipesModelFromJson(映射json){
回归模型(
json['name']作为字符串,
json['image']作为字符串,
json['description']作为字符串,
json['favorite']作为int,
json['timestamp']作为字符串,
json['preposition']作为字符串,
json['creation']作为字符串,
json['resting']作为字符串,
json['people']作为字符串,
json['backgroundColor']作为字符串,
(json['zutaten']作为列表)
?.map((e)=>e==null
无效的
:ZutatenModel.fromJson(e作为映射))
?.toList(),
(json['zubereitung']作为列表)
?.map((e)=>e==null
无效的
:ZubereitungModel.fromJson(e作为映射))
?.toList())
…recipeModel=
fromJson(json['recipeModel']作为映射);
}
映射$RecipesModelToJson(RecipesModel实例)=>
{
“name”:instance.name,
“image”:instance.image,
“description”:instance.description,
“收藏夹”:instance.favorite,
“timestamp”:instance.timestamp,
“预操作”:instance.preoperation,
“创建”:instance.creation,
“resting”:instance.resting,
“人”:例如。人,
“backgroundColor”:instance.backgroundColor,
“zutaten”:instance.zutaten,
“zubereitung”:instance.zubereitung,
“recipeModel”:instance.recipeModel
};
ZutatenModel$ZutatenModelFromJson(映射json){
返回ZutatenModel(
json['zutat']作为字符串,
json['number']作为字符串,
json['measure']作为字符串
);
}
映射$ZutatenModelToJson(ZutatenModel实例)=>
{
“zutat”:instance.zutat,
“number”:instance.number,
“度量”:instance.measure
};
ZubereitungModel$ZubereitungModelFromJson(映射json){
返回ZubereitungModel(json['number']作为字符串,json['steps']作为字符串);
}
映射$ZubereitungModelToJson(ZubereitungModel实例)=>
{'number':instance.number,'steps':instance.steps};
我在函数中调用RecipesModel.fromJson()方法,该方法应该能够将这些数据保存在数据库中。函数如下所示:

createJson() async{
      FlutterDocumentPickerParams params = FlutterDocumentPickerParams(
          allowedFileExtensions: ['json'],
          invalidFileNameSymbols: ['/']
      );
      final path = await FlutterDocumentPicker.openDocument(params: params);
      File file = new File(path);
      createRecipeJson(file);
      Map<String,dynamic> jSON = json.decode(path.readAsStringSync());
      var model = RecipesModel.fromJson(jSON);
      showBottomSnack("Name: ${model.name}", ToastGravity.BOTTOM);
    }
createJson()异步{
FlatterDocumentPickerParams参数=FlatterDocumentPickerParams(
allowedFileExtensions:['json'],
invalidFileNameSymbols:['/']
);
最终路径=documentpicker.openDocument(params:params);
文件=新文件(路径);
createRecipeJson(文件);
Map jSON=jSON.decode(path.readAsStringSync());
var model=RecipesModel.fromJson(jSON);
showBottomSnapshot(“名称:${model.Name}”,ToastGravity.BOTTOM);
}
我希望有人能帮我解决问题。那太棒了。

检查
@JsonSeri