Тип вывода функции декодирования JSON с помощью пакета lint

#json #flutter #types #decode #lint

#json #flutter #типы #декодирование #lint

Вопрос:

Я следую официальной документации здесь: https://flutter.dev/docs/development/data-and-backend/json#serializing-json-inline

 Map<String, dynamic> user = jsonDecode(jsonString);

print('Howdy, ${user['name']}!');
print('We sent the verification link to ${user['email']}.');
  

При использовании пакета lint из pub.dev я получаю сообщение об ошибке:
Значение типа ‘dynamic’ не может быть присвоено переменной типа ‘Map<String, dynamic>’.
Попробуйте изменить тип переменной или привести правый тип к ‘Map<String, dynamic>’.dartinvalid_assignment)

Я вижу проблему в том, что поля JSON должны быть динамического типа, однако, каков наилучший способ работы с пакетом lint в этом случае? Кроме того, извлечение декодированных полей (т.Е. userName = user['name'] ) Выдает ошибку из-за несоответствия типов (например, динамического и строкового).

Комментарии:

1. Вы должны явно использовать все, что связано с этими картами. например jsonDecode(jsonString) as Map<String, dynamic> , или user['name'] as String . Это единственный способ, если вы не хотите ослабить ограничения.