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

Flutter如何解析JSON数据并在VS Code终端打印指定字段内容

Flutter 提取指定JSON字段并打印到VS Code终端实现方案

实现前提

  • 已拿到接口返回的完整JSON字符串
  • 项目已导入dart:convert库用于JSON解析

方案1:手动解析(适合临时快速使用)

直接将JSON字符串转成Map后提取指定字段,代码如下:

import 'dart:convert';

// 假设response.body为接口返回的完整JSON字符串
Map<String, dynamic> fullResponseJson = jsonDecode(response.body);

// 提取目标字段
Map<String, dynamic> targetContent = {
  "id": fullResponseJson["id"],
  "title": fullResponseJson["title"],
  "gradeName": fullResponseJson["gradeName"],
  "subjectName": fullResponseJson["subjectName"],
  "videoUrl": fullResponseJson["videoUrl"],
  "status": fullResponseJson["status"],
  "createdDate": fullResponseJson["createdDate"],
  "admin": fullResponseJson["admin"],
};

// 普通打印
print(targetContent);

// 格式化打印(输出结构更易读)
print(const JsonEncoder.withIndent('  ').convert(targetContent));

方案2:模型类解析(适合正式项目使用)

先定义对应字段的模型类,解析逻辑更规范可复用,避免硬编码错误。

第一步:定义模型类

新建course_model.dart文件,代码如下:

class CourseModel {
  final int id;
  final String title;
  final String gradeName;
  final String subjectName;
  final String videoUrl;
  final bool status;
  final String createdDate;
  final bool admin;

  CourseModel({
    required this.id,
    required this.title,
    required this.gradeName,
    required this.subjectName,
    required this.videoUrl,
    required this.status,
    required this.createdDate,
    required this.admin,
  });

  factory CourseModel.fromJson(Map<String, dynamic> json) {
    return CourseModel(
      id: json['id'] as int,
      title: json['title'] as String,
      gradeName: json['gradeName'] as String,
      subjectName: json['subjectName'] as String,
      videoUrl: json['videoUrl'] as String,
      status: json['status'] as bool,
      createdDate: json['createdDate'] as String,
      admin: json['admin'] as bool,
    );
  }

  Map<String, dynamic> toJson() => {
    "id": id,
    "title": title,
    "gradeName": gradeName,
    "subjectName": subjectName,
    "videoUrl": videoUrl,
    "status": status,
    "createdDate": createdDate,
    "admin": admin,
  };
}

第二步:解析并打印

import 'dart:convert';
import 'course_model.dart';

// 解析完整JSON
Map<String, dynamic> fullResponseJson = jsonDecode(response.body);
CourseModel course = CourseModel.fromJson(fullResponseJson);

// 打印所有目标字段
print(course.toJson());
// 也可单独打印指定字段
print("课程标题:${course.title}");
print("视频ID:${course.videoUrl}");

注意事项

  • 若JSON字段可能为空,可将模型类属性定义为可选类型并设置默认值,避免类型转换异常
  • 若VS Code控制台无打印输出,确认当前运行的是Debug模式,且控制台过滤条件未隐藏输出内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:57:03