Closed
Description
my json data:
{
"success": true,
"data": {
"id": 1,
"name": "Jay"
}
}
{
"success": true,
"data": [
{
"id": 1,
"name": "Jay"
},
{
"id": 2,
"name": "Jay"
}
]
}
my result.dart
import 'package:json_annotation/json_annotation.dart';
part 'result.g.dart';
@JsonSerializable()
class Result<T> extends Object with _$ResultSerializerMixin<T> {
final bool success;
final T data;
Result(this.success, this.data);
factory Result.fromJson(Map<String, dynamic> json) =>
_$ResultFromJson<T>(json);
}
my person.dart
import 'package:json_annotation/json_annotation.dart';
part 'person.g.dart';
@JsonSerializable()
class Person extends Object with _$PersonSerializerMixin {
final int id;
final String name;
Person(this.id, this.name);
factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
}
My intent is to use it like this
var result1 = new Result<Person>.fromJson(json.decode(response.body));
var result2 = new Result<List<Person>>.fromJson(json.decode(response.body));