- 
                Notifications
    You must be signed in to change notification settings 
- Fork 435
Closed
Labels
Description
my json data:
{
    "resultCode": "0",
    "resultMessage": "success",
    "data": {
        "result": 5
    }
}my base_response.dart and its part
import 'package:json_annotation/json_annotation.dart';
part 'base_response.g.dart';
@JsonSerializable()
class BaseResponse<T> extends Object with _$BaseResponseSerializerMixin {
  String resultCode;
  String resultMessage;
  @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson)
  T data;
  BaseResponse(this.resultCode, this.resultMessage, this.data);
  factory BaseResponse.fromJson(Map<String, dynamic> json) => _$BaseResponseFromJson<T>(json);
}
T _dataFromJson<T>(Map<String, dynamic> input) => 
    input['value'] as T;
Map<String, dynamic> _dataToJson<T>(T input) =>
    {'value': input};part of 'base_response.dart';
BaseResponse<T> _$BaseResponseFromJson<T>(Map<String, dynamic> json) {
  return new BaseResponse<T>(
      json['resultCode'] as String,
      json['resultMessage'] as String,
      json['data'] == null
          ? null
          : _dataFromJson(json['data'] as Map<String, dynamic>));
}
abstract class _$BaseResponseSerializerMixin<T> {
  String get resultCode;
  String get resultMessage;
  T get data;
  Map<String, dynamic> toJson() => <String, dynamic>{
        'resultCode': resultCode,
        'resultMessage': resultMessage,
        'data': data == null ? null : _dataToJson(data)
      };
}my data class and its part
import 'package:json_annotation/json_annotation.dart';
part 'content.g.dart';
@JsonSerializable()
class Content extends Object with _$ContentSerializerMixin {
  int result;
  Content(this.result);
  factory Content.fromJson(Map<String, dynamic> json) => _$ContentFromJson(json);
}part of 'content.dart';
Content _$ContentFromJson(Map<String, dynamic> json) {
  return new Content(json['result'] as int);
}
abstract class _$ContentSerializerMixin {
  int get result;
  Map<String, dynamic> toJson() => <String, dynamic>{'result': result};
}then, when I use it like this:
var out = new BaseResponse<Content>.fromJson(jsonDecode(json));
print(out.resultCode);  // <---- it's 0
print(out.resultMessage);  // <---- it's success
print(out.data);  // <---- it's nullwhy out.data is null?  Am I missing something?
omneimneh