如何从REST API返回的字符串列表中拆分并格式化内容?
问题解决:将字符串列表转为预期的分行/列表格式
你当前用e.review!.map((e) => e).join(" ")把列表元素用空格拼接成了一段文本,这就是和预期结果不符的原因。根据你的需求,提供以下几种实现方式:
1. 生成每条评论单独换行的字符串
把拼接的分隔符从空格换成换行符\n即可:
e.review!.join("\n")
这样每条评论会单独占据一行,符合常规的多行文本展示需求。
2. 生成带项目符号的列表字符串
如果预期结果是带项目符号的列表,先给每个元素添加符号再拼接:
e.review!.map((item) => "- $item").join("\n")
最终会得到类似:
- 第一条评论
- 第二条评论
- 第三条评论
3. Flutter UI中直接渲染列表(推荐)
如果是在Flutter界面展示,不要用字符串拼接,直接遍历列表生成Text组件更灵活:
Column( crossAxisAlignment: CrossAxisAlignment.start, children: e.review! .map((reviewText) => Padding( padding: const EdgeInsets.symmetric(vertical: 4.0), child: Text("- $reviewText"), )) .toList(), )
这种方式可以方便调整样式(比如间距、字体),比纯字符串更适配UI需求。
你的RatingDataModel解析逻辑是正确的,已经把API返回的列表正确转为了List<String>,只需要调整展示时的处理方式即可。
内容的提问来源于stack exchange,提问作者Muhammad Yafi A
相关产品推荐
相关产品推荐

