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

在Flutter中使用flutter_secure_storage存储字符串列表是否可行?

Flutter Secure Storage 存储List方案说明

需求可行性说明

flutter_secure_storage 官方仅支持存储String类型的键值对,原生不支持直接写入、读取List类型,你想要的直接调用storage.read返回List的效果无法通过原生API直接实现,但可以通过简单的封装实现完全等效的调用体验。

推荐实现方案

方案1:手动序列化/反序列化(适合少量使用场景)

核心逻辑是利用JSON序列化将List转换为String类型存储,读取时反向转换回来。

写入示例

import 'dart:convert';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

final storage = FlutterSecureStorage();
List<String> listViewerBuilderString = ['a1','a2','a3'];
// 将列表序列化为JSON字符串
String storedValue = jsonEncode(listViewerBuilderString);
await storage.write(key: 'listOfItems', value: storedValue);

读取示例

String? storedValue = await storage.read(key: 'listOfItems');
List<String> listViewerBuilderString = [];
if (storedValue != null) {
  // 将JSON字符串反序列化为List<String>
  listViewerBuilderString = List<String>.from(jsonDecode(storedValue));
}

方案2:扩展方法封装(适合频繁使用场景,可实现近似原生调用效果)

给FlutterSecureStorage扩展自定义的读写列表方法,封装序列化逻辑,调用更简洁。

扩展代码

import 'dart:convert';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

extension FlutterSecureStorageListExtension on FlutterSecureStorage {
  /// 存储List<String>
  Future<void> writeStringList({
    required String key,
    required List<String> value,
  }) async {
    final jsonStr = jsonEncode(value);
    await write(key: key, value: jsonStr);
  }

  /// 读取List<String>,无数据时默认返回空列表
  Future<List<String>> readStringList({required String key}) async {
    final jsonStr = await read(key: key);
    if (jsonStr == null) return [];
    return List<String>.from(jsonDecode(jsonStr));
  }
}

调用示例(完全匹配你想要的简洁效果)

// 写入
await storage.writeStringList(key: 'listOfItems', value: ['a1','a2','a3']);
// 读取
List<String> listViewerBuilderString = await storage.readStringList(key: 'listOfItems');

注意事项

  • 不要使用自定义分隔符(比如逗号、竖线)拼接字符串存储,一旦列表元素包含分隔符会出现解析错误,JSON序列化是目前最稳妥的类型转换方案
  • 如果需要支持读取空值返回null而不是空列表,可自行修改扩展方法中的返回逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:36:06