I have a response returned from an API
{
"statusCode": 200,
"success": true,
"data": [
{
"id": 1,
"data_plan_code": "107",
"network_id": "3",
"data_type": "CG",
"data_value": "1GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "300",
"profit": "20",
"remark": "1GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
},
{
"id": 2,
"data_plan_code": "108",
"network_id": "3",
"data_type": "CG",
"data_value": "2GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "600",
"profit": "40",
"remark": "2GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
},
{
"id": 3,
"data_plan_code": "109",
"network_id": "3",
"data_type": "CG",
"data_value": "5GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "1500",
"profit": "100",
"remark": "5GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
},
{
"id": 4,
"data_plan_code": "124",
"network_id": "3",
"data_type": "CG",
"data_value": "10GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "3000",
"profit": "200",
"remark": "10GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
},
{
"id": 5,
"data_plan_code": "139",
"network_id": "3",
"data_type": "CG",
"data_value": "15GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "4500",
"profit": "300",
"remark": "15GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
},
{
"id": 6,
"data_plan_code": "140",
"network_id": "3",
"data_type": "CG",
"data_value": "20GB",
"duration": "30 days ",
"network_name": "Airtel ",
"amount": "6000",
"profit": "400",
"remark": "20GB(CG)",
"created_at": "-000001-11-30T00:00:00.000000Z",
"updated_at": "-000001-11-30T00:00:00.000000Z"
}
]
}
I want to store the data
array of objects in a list of map in flutter. List<Map<String, dynamic>>
I did the following but it didn’t work
List<Map<String, dynamic>> _roles = []; //store the list of map here
Map<String, dynamic> result = value.data['data']; //data from api to map
_roles.add(result); //add map to list
Can someone assists or any ideas. Thanks
3
Answers
I was able to fix it by myself:
The data you’re looking at is JSON data. you can use
dart:convert
to convert it to aList<Map>
:Prints:
See also
converting string to map in dart
And if you want to create a model class: How to convert Json to model class in dart?
value.data["data"]
is already a list of maps since you don’t want to convert the response into some object. you can do the following