Flutter конвертирует JSON строку в многоуровневый список - PullRequest
0 голосов
/ 29 мая 2020

Я хочу преобразовать строку в многоуровневый список, но не могу найти эффективного способа сделать это.

From String: [[1,2,3], [1,2]]

В список: Список <Список <int >>

Ответы [ 3 ]

1 голос
/ 29 мая 2020

Попробуйте это как функцию

List<List<int>> convert(String val){
    List<List<int>> list = [];
  jsonDecode(val).forEach((mainList) {
    List<int> subList = [];
    mainList.forEach((sList) {
      subList.add(sList);
    });
    list.add(subList);
  });
  return list;
}

Также импортируйте dart:convert;

0 голосов
/ 29 мая 2020

Укороченная версия:

import 'dart:convert';

void main() {
  var jsonMap = "[[1,2,3],[1,2]]";
  List<List<int>> items = (jsonDecode(jsonMap) as List).map((lst) => 
      (lst as List).map((i) => (i as int)).toList()).toList();
  print(items);
}
0 голосов
/ 29 мая 2020
String str = '[[1,2,3],[1,2]]';
  List<List<int>> list=[];
  for(String s in str.split('],[')){
    List<int> l = [];
    String formattedString = s.replaceAll('[','').replaceAll(']','');
    for(String innerS in formattedString.split(',')){
        l.add(int.parse(innerS));
      print(l);
    }
    list.add(l);
  }

Вывод: [[1, 2, 3], [1, 2]]

...