GerarDasCodigoBarrasResponse.fromJson constructor

GerarDasCodigoBarrasResponse.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory GerarDasCodigoBarrasResponse.fromJson(Map<String, dynamic> json) {
  Map<String, dynamic>? dadosParsed;
  try {
    final dadosStr = json['dados']?.toString() ?? '';
    if (dadosStr.isNotEmpty) {
      final decoded = jsonDecode(dadosStr);
      if (decoded is List) {
        // Se for uma lista, converte para Map com chave 'das'
        dadosParsed = {'das': decoded};
      } else if (decoded is Map) {
        dadosParsed = decoded as Map<String, dynamic>;
      }
    }
  } catch (e) {
    // Se não conseguir fazer parse, mantém dados como null
  }

  return GerarDasCodigoBarrasResponse(
    status: int.parse(json['status'].toString()),
    mensagens: (json['mensagens'] as List)
        .map((m) => Mensagem.fromJson(m))
        .toList(),
    dados: dadosParsed,
  );
}