1

I am having a weird problem.

I am using a JSON (Map<String, dynamic>) object type in order to answer questions in a dynamic way, since there are a lot of questions with different types.

Example: I have a list of questions where the answers can be numbers, strings or booleans.

Here is my problem...

When I have questions where I expect an "int", I get an error saying.

type 'int' is not a subtype of type 'Null' of 'value'

This is basically because I initialize the JSON with the question equal to "null".

List<Map<String, dynamic>> questions = [{ question: 'How old are you?', answer: null }];

But when they answer the question I do something like this:

questions[questionIndex]['answer'] = 20;

For some reason, when I do this, I get the error, saying that the JSON was expecting an Null valuable since I initizlied the answer with "null". How can I change this behaviour in order to be able to assign String, int or Boolean variables in a JSON object that is has been initialized to null?

Thanks friends!

1 Answer 1

2

When creating { question: 'How old are you?', answer: null } try specify the precise type you want like <String, dynamic>{ question: 'How old are you?', answer: null }.

void main() {
  List<Map<String, dynamic>> questions = [
    <String, dynamic>{'question': 'How old are you?', 'answer': null}
  ];
  questions[0]['answer'] = 20;
  print(questions); // [{question: How old are you?, answer: 20}]
}
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.