flutter serializer parsing json array

Viewed 24

I am trying to fetch and parse the below response . I am successfull in receiving the json but unable to parse the array of objects . I am using serializable for this . kindly help me .

Following below is the model class

import 'package:coinbase_sockets/deriv_models/active_symbols_response.dart';
import 'package:json_annotation/json_annotation.dart';

part 'markets_response.g.dart';

@JsonSerializable()
class MarketsResponse {

  @JsonKey(name: 'active_symbols')
  List<ActiveSymbolsResponse> active_symbols;

  MarketsResponse(this.active_symbols);

  factory MarketsResponse.fromJson(Map<String,dynamic> data) {
    print('##---------------------coming--------------------------');
    var l = _$MarketsResponseFromJson(data);

    print('##lrngth l'+l.toString());

    return _$MarketsResponseFromJson(data);}

  Map<String,dynamic> toJson() => _$MarketsResponseToJson(this);

}

Below is the generated class that i edited .

// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'markets_response.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

MarketsResponse _$MarketsResponseFromJson(Map<String, dynamic> json) {

  **print('##---------------------market--------------------------'+json.toString()); receved upto here**

  var mm= MarketsResponse(
      json['active_symbols'] as List<ActiveSymbolsResponse>
  );

  **print('##---------------------mm--------------------------');this is not printed -means issue with mm**



  return MarketsResponse(
      json['active_symbols'] as List<ActiveSymbolsResponse>
  );
}



Map<String, dynamic> _$MarketsResponseToJson(MarketsResponse instance) =>
    <String, dynamic>{
      'active_symbols': instance.active_symbols,
    };
1 Answers

Try this

import 'package:json_annotation/json_annotation.dart';

part 'markets_response.g.dart';

@JsonSerializable()
class MarketsResponse {

  @JsonKey(name: 'active_symbols')
  List<ActiveSymbolsResponse> active_symbols;

  MarketsResponse(this.active_symbols);

  factory MarketsResponse.fromJson(Map<String, dynamic> json) => _$MarketsResponseFromJson(json);

  Map<String, dynamic> toJson() => _$MarketsResponseToJson(this);
}
Related