将以逗号分隔的值添加到类列表 [英] Add comma separated value to class list

查看:82
本文介绍了将以逗号分隔的值添加到类列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在列表中添加逗号分隔的值。

I need to add the value in the list which is comma separated.

样本数据:

English,Hindi,French

以下是列表的类别:

class LanguageService {

 }

 class Language extends Taggable {
  final String name;
  /// Creates Language
  Language({
    this.name,
   // this.position,
  });

  @override
  List<Object> get props => [name];

  /// Converts the class to json string.
  String toJson() => '''  {
    "name": $name,\n
   
  }''';  
//}

 String thuJson() => '''  {
    "name": $name,
   
  }''';  
}

GetTags getTagsFromJson(String str) => GetTags.fromJson(json.decode(str));

class GetTags {
    List<Content> content;

    bool success;
    //String error;

    GetTags({
        this.content,
        this.success,
    });

    factory GetTags.fromJson(Map<String, dynamic> json) => GetTags(
        content: (json["content"] as List).map((x) => Content.fromJson(x)).toList(),
        success: json["success"],
    );

}

class Content {
    String tagname;
    Content({
        this.tagname,
    });

    factory Content.fromJson(Map<String, dynamic> json) => Content(
        tagname: json == null ? 'Empty' : json["tagname"]
    );
    
}

我尝试了拆分,但它给了我错误。

I tried split but it is giving me error.

    List<Language> _selectedLanguages;
    _selectedLanguages = [];
//responseBody['user_lang'] = 'English,Hindi,French' Data looks like this
        _selectedLanguages = responseBody['user_lang'].split(', ');
        Exception Caught: type 'List<String>' is not a subtype of type 'List<Language>'


_selectedLanguages.add(responseBody['user_lang']);
Exception Caught: type 'String' is not a subtype of type 'Language'


Update


我也尝试过此操作,但出现错误。

Update

I tried this too but getting error.

       List _dbLanguages = responseBody['user_lang'].split(', ');
selectedLanguages =  _dbLanguages.map<List<Language>>((item) => Language(item))

A value of type 'Iterable<List<Language>>' can't be assigned to a variable of type 'List<Language>'.
Try changing the type of the variable, or casting the right-hand type to 'List<Language>'.


推荐答案

一种方法是这样的。 / p>

One way you can do this is like this.

List<Language> _selectedLanguages;
_selectedLanguages = (responseBody['user_lang'].split(',') as List<String>).map((text) => Language(name: text)).toList();

这篇关于将以逗号分隔的值添加到类列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆