Skip to content

How to use generic #250

Closed
Closed
@blackraindrop

Description

@blackraindrop

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)); 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions