So I have open api json response of model:
{
"object": "list",
"data": [
{
"id": "whisper-1",
"object": "model",
"created": 1677532384,
"owned_by": "openai-internal",
"permission": [
{
"id": "modelperm-KlsZlfft3Gma8pI6A8rTnyjs",
"object": "model_permission",
"created": 1683912666,
"allow_create_engine": false,
"allow_sampling": true,
"allow_logprobs": true,
"allow_search_indices": false,
"allow_view": true,
"allow_fine_tuning": false,
"organization": "*",
"group": null,
"is_blocking": false
}
],
"root": "whisper-1",
"parent": null
},
]
}
And here is the data model classes:
import 'package:flutter_chatgpt/src/data/models/model_model.dart';
class ModelResponse {
ModelResponse({
required this.object,
required this.data,
});
late final String object;
late final List<Model> data;
ModelResponse.fromJson(Map<String, dynamic> json){
object = json['object'];
data = List.from(json['data']).map((e)=>Model.fromJson(e)).toList();
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['object'] = object;
_data['data'] = data.map((e)=>e.toJson()).toList();
return _data;
}
}
class Model {
Model({
required this.id,
required this.object,
});
late final String id;
late final String object;
Model.fromJson(Map<String, dynamic> json){
id = json['id'];
object = json['object'];
}
Map<String, dynamic> toJson() {
final data = <String, dynamic>{};
data['id'] = id;
data['object'] = object;
return data;
}
}
But upon the API request when I pass in the data to the fromJson() of ModelResponse, I get this error:
Exception: Failed to fetch models: type '_Map<String, dynamic>' is not a subtype of type 'String'
Seems like getting the response from the API but the function is not able to properly parse the JSON and convert it into the object. I don’t know what is causing it.
2
Answers
Please try this ModelResponse class, based on your json (model created from quicktype):
then use :
Update your model class to this :
Then use :
Link to generate model classes is Json to Dart Model Class