Карта дротика/Флаттера имеет пустой странный пустой ключ, ведущий к значению

#string #flutter #dictionary #dart #key

Вопрос:

Это невероятно странно.

У меня есть очень сложный класс, который, вероятно, должен был использовать объекты вместо безумно вложенных массивов. В любом случае, когда приходит время сохранить все, я получаю странное приложение к моей основной структуре данных loanItemDetails. Я распечатал его в журналах, и в нем есть это

loanItemDetails = {: {exists: true}, roundCakeTin: {charges: true, rent: 5, exists: true}...}

сломать это:

keys = (, roundCakeTin

values = ({exists: true}, {charges: true, rent: 5, exists: true}

Это нежелательно. Как мне искать нулевой ключ? Так вот в чем дело? Или в качестве ключа служит пустая строка? Или…? Я начал искать везде , где назначаю "exists": true , но это мучительно, мне бы хотелось немного улучшить интуицию.

Ответ №1:

Если вы хотите удалить нулевые значения из словаря, вы можете использовать это:

 void main() {
  final map = {'text': null, 'body': 5, null: 'crap', 'number': 'ten'};

  map.removeWhere((key, value) => key == null || value == null);

  print(map); // {body: 5, number: ten}
}
 

Я не вижу вашей исходной структуры данных в вашем вопросе. Если вы расширите это, я могу улучшить этот ответ.