Flutter数据库查询结果如何去除列名仅显示字段值?
Flutter数据库查询结果提取指定字段值
问题描述
在Flutter中使用SqlConn从数据库获取数据时,执行查询后返回的结果是JSON格式字符串(如[{"CUST_NAME":"MY NAME"}]),直接用Text(res)显示会包含列名和JSON结构,需要仅显示字段对应的值(如MY NAME)。
当前实现代码:
var res = ""; Future<void> cetak(String query) async { var req = await SqlConn.readData(query); setState(() { res = req; }); }
调用代码:
cetak("SELECT CUST_NAME FROM ts_custxm WHERE CUST_CODE = '$custCode'");
解决方案
SqlConn返回的是JSON格式的字符串,需要先将其解析为可操作的List<Map>对象,再从中提取目标字段的值。
修改后的代码
import 'dart:convert'; var res = ""; Future<void> cetak(String query) async { var req = await SqlConn.readData(query); // 解析JSON字符串为List对象 List<dynamic> resultList = jsonDecode(req); setState(() { // 列表非空时提取CUST_NAME值,为空则设为空字符串 res = resultList.isNotEmpty ? resultList[0]['CUST_NAME'] ?? "" : ""; }); }
修改后,res会直接存储MY NAME,使用Text(res)即可显示预期内容。
内容的提问来源于stack exchange,提问作者Tsabit
相关产品推荐
相关产品推荐

