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

Flutter中使用sql_conn获取JSON字符串后解析提取指定字段值

解决Flutter中解析sql_conn返回JSON字符串的问题

首先你需要导入Dart的dart:convert包,用来处理JSON解析:

import 'dart:convert';

方法一:提前解析并存储目标值

直接在cetak方法里完成解析,把需要的CUST_NAME单独存起来,后续直接调用:

// 替换原来的var res = "";
String? custName;

Future<void> cetak(String query) async {
  var req = await SqlConn.readData(query);
  setState(() {
    try {
      // 把JSON字符串转成List对象
      List<dynamic> dataList = jsonDecode(req);
      if (dataList.isNotEmpty) {
        // 取第一个元素的CUST_NAME值
        custName = dataList.first['CUST_NAME'];
      } else {
        custName = "无匹配数据";
      }
    } catch (e) {
      // 处理解析失败的情况,比如格式错误
      custName = "解析失败";
    }
  });
}

之后在Text组件里直接使用:

Text(custName ?? "无数据")

方法二:在Text组件中即时解析

如果不想修改原有的res变量,也可以在Text里直接解析字符串:

Text(
  () {
    try {
      List<dynamic> data = jsonDecode(res);
      if (data.isNotEmpty && data.first.containsKey('CUST_NAME')) {
        return data.first['CUST_NAME'];
      }
      return "无匹配数据";
    } catch (e) {
      return "解析失败";
    }
  }(),
)

注意点

  • 必须加异常捕获,避免因为返回的JSON格式错误、数据为空导致APP崩溃
  • 如果你的查询可能返回多条数据,可根据需求调整逻辑(比如取第一条、拼接所有结果等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:10:49