2
respostas

Erro ao formatar os dados vindos do Gist no findAll()

Olá, atualmente estou com um erro quando tento usar a função findAll() para mostrar os dados vindos do gist.

Aqui está meu código atual:

import 'dart:convert';

import 'package:bytebank/http/webclient.dart';
import 'package:http/http.dart';

final String MESSAGES_URI = 'https://gist.githubusercontent.com/ricardoalvs0/2033603872713ded274dc4a35722fe6e/raw/5955021873cb25908264ccbffce0835dee34de84/';

class I18NWebClient {
    final String _viewKey;

    I18NWebClient(this._viewKey);

    Future<Map<String, dynamic>> findAll() async {
        final Response response = await client.get("$MESSAGES_URI$_viewKey.json");
        final Map<String, dynamic> decodedJson = jsonDecode(response.body);

        return decodedJson;
    }
}

Esse código deveria me retornar um Map<String, dynamic> para ser usado no carregamento da página inicial da aplicação. Mas, esse erro está acontecendo todas as vezes em que tento buildar a aplicação:

I/flutter (26567): I18NMessagesCubit > Change { currentState: Instance of 'InitI18NMessagesState', nextState: Instance of 'LoadingI18NMessagesState' }
I/flutter (26567): Request
I/flutter (26567): url: https://gist.githubusercontent.com/ricardoalvs0/2033603872713ded274dc4a35722fe6e/raw/081fa2f9058062ab091fa61bae80829343ed5011/dashboard.json
I/flutter (26567): headers: {}
I/flutter (26567): body:
I/flutter (26567): Response
I/flutter (26567): status code: 200
I/flutter (26567): headers: {x-fastly-request-id: 4c16df055c82e06bcfa7c38b93446a3b0f40bca0, x-timer: S1627407904.784997,VS0,VE0, connection: keep-alive, cache-control: max-age=300, access-control-allow-origin: *, date: Tue, 27 Jul 2021 17:45:03 GMT, vary: Authorization,Accept-Encoding, strict-transport-security: max-age=31536000, content-type: text/plain; charset=utf-8, x-xss-protection: 1; mode=block, x-served-by: cache-cgh11145-CGH, x-github-request-id: 7FEA:5C40:CD5F9:14947E:610045DB, accept-ranges: bytes, content-length: 103, etag: W/"0274bc86410492bed252837b02b7370d9798a5a7a7796e37f975face9339d7c0", via: 1.1 varnish, x-frame-options: deny, source-age: 68, x-content-type-options: nosniff, x-cache-hits: 1, content-security-policy: default-src 'none'; style-src 'unsafe-inline'; sandbox, x-cache: HIT, expires: Tue, 27 Jul 2021 17:50:03 GMT}
I/flutter (26567): body: {
I/flutter (26567):   "transfer": "TRANSFER",
I/flutter (26567):   "transaction_feed": "TRANSACTION FEED",
I/flutter (26567):   "change_name": "CHANGE NAME",
I/flutter (26567): }
E/flutter (26567): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FormatException: Unexpected character (at line 5, character 1)
E/flutter (26567): }
E/flutter (26567): ^
E/flutter (26567):
E/flutter (26567): #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5)
E/flutter (26567): #1      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:928:13)
E/flutter (26567): #2      _parseJson (dart:convert-patch/convert_patch.dart:40:10)
E/flutter (26567): #3      JsonDecoder.convert (dart:convert/json.dart:506:36)
E/flutter (26567): #4      JsonCodec.decode (dart:convert/json.dart:157:41)
E/flutter (26567): #5      jsonDecode (dart:convert/json.dart:96:10)
E/flutter (26567): #6      I18NWebClient.findAll
package:bytebank/…/webclients/i18n_webclient.dart:15
E/flutter (26567): <asynchronous suspension>
E/flutter (26567):

Alguém poderia me ajudar a resolver esse problema? Caso seja necessário o envio de mais informações a respeito disso, podem falar que eu mando.

2 respostas

Bom dia, Ricardo. Tudo bom?

Você poderia mandar o código completo, para tentarmos te ajudar?

Aguardo seu retorno.

Fala Ricardo!

Retira a vírgula no final do último item: "change_name": "CHANGE NAME",

Vai resolver, abraço!