You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter导入dart:convert仍找不到fromJson与parsedJson方法求助

解决Flutter JSON解析的几个常见错误

嘿,看了你的问题,这几个错误都是Model层的实现问题,和dart:convert导入没关系,咱一步步来解决:

1. 错误:Method not found: 'TextProblem.fromJson'

这个问题很明确:你的TextProblem类根本没定义fromJson这个构造函数/方法。Flutter不会自动生成JSON解析逻辑,得你手动实现(新手先手写,熟悉后可以用json_serializable插件自动生成)。

你需要在model_textproblem.dart里给TextProblem添加一个工厂构造函数,用来把JSON对象转成模型实例。

2. 错误:Getter not found: 'parsedJson'

这个是因为你在Model里直接用了parsedJson这个变量,但它要么没被定义,要么不在当前作用域里。你应该用解析时传入的JSON对象,而不是凭空的parsedJson变量。


修改后的model_textproblem.dart代码示例

根据你的错误信息,我推测你的JSON结构包含taskPrmtrs、taskTags和problemTasks这类字段,下面是适配的Model实现:

import 'dart:convert';

// 主模型类
class TextProblem {
  final List<ProblemTask> problemTasks;
  // 可根据JSON结构添加其他属性,比如taskPrmtrs、taskTags

  // 普通构造函数
  TextProblem({required this.problemTasks});

  // 关键:实现fromJson工厂构造函数,用于解析JSON
  factory TextProblem.fromJson(Map<String, dynamic> json) {
    // 替换你原来的parsedJson,直接用传入的json参数
    var problemTasksList = json['problemTasks'] as List<dynamic>;
    // 将JSON数组转为ProblemTask实例列表
    List<ProblemTask> tasks = problemTasksList
        .map((taskJson) => ProblemTask.fromJson(taskJson))
        .toList();

    // 如果需要处理taskPrmtrs和taskTags,直接用json['taskPrmtrs']获取即可
    // var taskPrmtrs = json['taskPrmtrs'] as List;
    // var taskTags = json['taskTags'] as List;

    return TextProblem(problemTasks: tasks);
  }
}

// 嵌套的子模型类
class ProblemTask {
  final String taskText;
  // 其他子属性根据JSON结构补充

  ProblemTask({required this.taskText});

  // 子模型的fromJson构造函数
  factory ProblemTask.fromJson(Map<String, dynamic> json) {
    return ProblemTask(
      taskText: json['taskText'] ?? '', // 加空值判断避免字段缺失崩溃
    );
  }
}

验证你的Service代码

你的service_textproblem.dart代码是没问题的,只要Model层补好fromJson方法,调用TextProblem.fromJson(jsonResponse)就不会报错了。

额外提示

  • 如果JSON结构复杂,后期可以用json_serializable插件自动生成解析代码,减少手动编写的工作量。
  • 解析时尽量添加空值判断,避免因JSON字段缺失导致应用崩溃。

内容的提问来源于stack exchange,提问作者w461

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:37:32