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
相关产品推荐
相关产品推荐

