将数据库读取的字符串转换为List<String>。

huangapple go评论68阅读模式
英文:

How to convert string from database read to List<String>

问题

我正在从我的数据库中读取数据,问题中的特定数据是一个以字符串形式记录在我的数据库中的列表,现在我试图通过将该字符串转换回List来读取数据,我该如何使用以下代码片段来实现这个目标:

Widget build(BuildContext context) {
    return ref.watch(getDataByIdProvider(widget.ID)).when(
        data: (data) => Scaffold(
            body: ListView(
                children: [
                    for (int i = 0; i < data.name.length; i++)//问题中的列表
                        RadioListTile(
                            title: Text(
                                data.name[i].toString(),
                            ),
                            value: i,
                            groupValue: _selectedRadio,
                            onChanged: (value) {
                                _selectedRadio = value as int?;
                            }),
                ],
            ),
        ),
    );
}

请注意,您需要确保在getDataByIdProvider(widget.ID)返回的数据对象中有一个名为name的列表属性,以便能够正确读取和显示数据。

英文:

I'm reading data from my db , the specific data in question is a list which was recorded as a String in my database , now i'm trying to read the data by converting the String back into a List<String> , how can i go about doing this wthe snippet of code below :

Widget build(BuildContext context) {
    return ref.watch(getDataByIdProvider(widget.ID)).when(
          data: (data) =&gt; Scaffold(
            body: ListView(
              children: [
                for (int i = 0; i &lt; data.name.length; i++)//The list in question
                      RadioListTile(
                          title: Text(
                            data.name[i].toString(),
                          ),
                          value: i,
                          groupValue: _selectedRadio,
                          onChanged: (value) {
                            _selectedRadio = value as int?;
                          }),],

答案1

得分: 0

如果您的字符串已被逗号字符“,”分隔,您可以尝试以下方法:

Column(
  children: [
    ...data.name.split(',').map((e) => Text(e)).toList(),
  ],
)

在这个代码中,我已经通过逗号字符“,”分割了我的字符串,因此Dart语言会在每个逗号字符“,”之前创建一个项目列表。您可以将Text小部件更改为您所需的内容。

英文:

if your string has been separated by ',' character, you can try this way:

Column(
          children: [
            ...data.name.split(&#39;,&#39;).map((e) =&gt; Text(e)).toList(),
          ],
        ),

in this code, I have split my string by ',' char, so dart lang will create a list of items before each ',' char. you can turn Text widget to your desired one.

答案2

得分: 0

其中一种解决方案是使用dart:convert中的jsonEncodejsonDecode将您的列表存储为JSON字符串。

final list = ['one', 'to', 'three'];

/// 将您的列表转换为JSON字符串
final jsonString = jsonEncode(list);
/// 调用 db.save(jsonString)

/// 调用 db.get('yourJsonStringKey')
/// 将JSON字符串转换回列表
final listFromJson = jsonDecode(jsonString);
英文:

One of the solutions is to store your list as a json string using jsonEncode and jsonDecode from dart:convert

final list = [&#39;one&#39;, &#39;to&#39;, &#39;three&#39;];

/// convert your List to json string
final jsonString = jsonEncode(list);
/// Call db.save(jsonString)

/// Call db.get(&#39;yourJsonStringKey&#39;)
/// Convert json string back to List
final listFromJson = jsonDecode(jsonString);  

huangapple
  • 本文由 发表于 2023年7月18日 16:51:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/76711022.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定