Dart 删除方括号并添加单引号

Rom*_*ffa 2 dart flutter

我有一个从数据库中作为字符串提取的字符串列表

[name 1, name2, name3, ...]
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为:

'name 1', 'name2', 'name3', '...'
Run Code Online (Sandbox Code Playgroud)

到目前为止还没有成功。我获取数据的方法。该方法很好,因为我事先将它用于代码的其他部分。

  Future<List<String>> getNames() async {
    var url = _api + "get_names.php?key=" + _key;
    http.Response response = await http.get(url);
    var resp = jsonDecode(response.body);
    return resp.map<String>((m) => m['names'] as String).toList();
  }
Run Code Online (Sandbox Code Playgroud)

列表作为字符串从数据库中提取。

基本上我正在使用表单构建器代码的一部分,该代码使用初始值作为动态。因此,如果我设置initialValue:[widget.names]并且widget.names包含'name1','name2',如果它是字符串列表就可以了,但它当然需要单引号或双引号并用逗号分隔。

谢谢

nvo*_*igt 8

void main() {
  final input = '[name 1, name2, name3, ...]';
  final removedBrackets = input.substring(1, input.length - 1);
  final parts = removedBrackets.split(', ');
  
  var joined = parts.map((part) => "'$part'").join(', ');
  
  print(joined);
}
Run Code Online (Sandbox Code Playgroud)

使用: https: //api.flutter.dev/flutter/dart-core/String/split.html

印刷:

'name 1', 'name2', 'name3', '...'
Run Code Online (Sandbox Code Playgroud)

也就是说......也许您应该找到一种更好的方法来获取数据。也许作为 Json 或其他东西,所以你不必重新发明序列化。例如,如果“name 1”中有逗号,会发生什么?或者说是达达尼昂