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

Flutter中如何访问并打印解析后JSON模型内的Lc.percent字段值

解决方法

第一步:修正现有数据类的类型错误

你当前定义的Lc类中percent字段被声明为int类型,但你提供的JSON数据中percent的值为100.4,属于浮点类型,直接解析会触发类型匹配异常,需要先调整字段类型:

class Lc {
  // 把int改为double
  late double percent;
  late String color;
  late int weight;
  late double totalWeight;
  late double totalRubForPerson;
  // 其余构造、解析代码保持不变
}

第二步:解析JSON并取值

需要先将JSON字符串转为Map结构,再通过你已经写好的fromJson方法转为实体对象,之后用点语法直接访问对应属性即可,示例代码如下:

import 'dart:convert';

void getLcPercent() {
  // 你的JSON源数据
  String rawJson = '''
  {
    "lc": {
      "percent": 100.4,
      "color": "yellow",
      "weight": 30,
      "total_weight": 32.51,
      "total_rub_for_person": 7.5
    }
  }
  ''';
  // 1. JSON字符串转Map
  Map<String, dynamic> jsonMap = jsonDecode(rawJson);
  // 2. 反序列化为PersonKpi实体
  PersonKpi kpiData = PersonKpi.fromJson(jsonMap);
  // 3. 打印percent值
  print(kpiData.lc.percent);
}

Widget中使用示例

如果需要在界面组件中展示该值,直接调用对应属性即可:

@override
Widget build(BuildContext context) {
  // 假设你已经拿到解析好的kpiData对象
  return Text(kpiData.lc.percent.toString());
}

注意事项

  • 你当前写的PersonKpi.fromJson方法中对所有字段都用了!非空断言,如果实际返回的JSON数据缺失fc、revenue等你声明的非lc字段,会直接抛出空异常。建议你将这些字段声明为可空类型,或者解析时添加默认值,避免运行时崩溃。
  • 后续复杂数据类的序列化逻辑推荐用官方的json_serializable工具自动生成,避免手写代码出现类型匹配、字段名写错等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:54:03