#dart
Вопрос:
Я хочу преобразовать строку "["1", "2", "3", "4"]"
в список [1,2,3,4]
на языке Dart .
Комментарии:
1. Что ты сам пробовал? Какие у вас проблемы с этим решением? Возможно, мы сможем помочь вам решить эти проблемы.
Ответ №1:
Попробуйте вставить это на DartPad:
import 'dart:convert';
final list = '"["1", "2", "3", "4"]"';
void main() {
print(jsonDecode(list.replaceAll('"', '')));
}
Если ваш список поступает непосредственно из API, вам не нужны replaceAll
методы.
Ответ №2:
Неясно, нужен ли вам список строк или список целых чисел. Или есть ли более общая проблема, которую вы пытаетесь решить, а не просто возвращаете литерал списка [1, 2, 3, 4]
.
Самый простой подход-это
import "dart:convert";
...
var stringList = jsonDecode(string);
что даст вам список строк.
Затем вы можете преобразовать это в числа, используя:
var numList = [for (var v in stringList) int.parse(v)];
или
var numList = stringList.map((s) => int.parse(s)).toList();
Комментарии:
1. jsonDecode получает необработанное исключение ошибки: введите ‘(Строка, {int? радиус, ((Строка) => int)? onError}) => int’ не является подтипом типа ‘(динамический) =>> динамический’ типа ‘f’