I need to decode the following JSON in Dart. When I perform the decoding, I encounter the following error. How can I resolve this?
Error: type '(Map<dynamic, dynamic>) => RicettaNew' is not a subtype of type '(dynamic) => dynamic' of 'f'
JSON:
[{"name":"ricetta1","values":
[{"key":"item1","value":"3"},
{"key":"item2","value":"8"},{"key":"item3","value":"13"}
,{"key":"item4","value":"18"},{"key":"item5","value":"23"},{"key":"item6","value":"14"},....
Flutter Code:
var serverlink = "http://207.154.221.255:8600/api/recipes"+"/"+mc.model;
var request = http.Request('GET', Uri.parse(serverlink));
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
var result = await response.stream.bytesToString();
print("result: "+result);
var list = jsonDecode(result.toString());
lista=jsonDecode(result).map((Map m)=> RicettaNew.fromJson(m)).toList();
...
class RicettaNew {
String name;
List<Values> values = [];
RicettaNew(this.name, this.values);
RicettaNew.fromJson(Map json) {
name = json["name"];
}
}
just change your base [] braces to {}
Because the json you want to pass is not correct json format
Json format always starts and ends with { … }
{
"name":"ricetta1",
"values": [
{"key":"item1","value":"3"},
{"key":"item2","value":"8"},
{"key":"item3","value":"13"},
{"key":"item4","value":"18"},
{"key":"item5","value":"23"}
]
}
before decoding parse your json on https://jsoneditoronline.org/ so you can identify its in right format or wrong
& generate your model class on https://javiercbk.github.io/json_to_dart/