#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
. Это единственный способ, если вы не хотите ослабить ограничения.