Флаттер: неожиданный персонаж (персонаж 1) - PullRequest
0 голосов
/ 04 марта 2020

В Flutter, независимо от того, какой файл json я пытаюсь декодировать, я получаю ту же самую выше названную ошибку. Первоначально я думал, что это что-то с моим проектом, но после запуска нового шаблона проекта Flutter я все еще получаю ту же ошибку. У меня есть файл json в моей папке root, и я добавил их в файл pubspe c .yaml:

  assets:
      - Sample-JSON-data.json
      - Sample-employee-JSON-data.json

Код Main.dart на данный момент:

    var jsonString = 'Sample-JSON-data.json';
    var response = jsonDecode(jsonString);
    print(response);

Я подтвердил свои данные json на нескольких испытательных участках, а также попробовал различные методы в документации Flutter . Json данные:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.0763783444317,
                    -33.98045132346684
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.0763783444317,
                    -33.98045132346684
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.07774912725728,
                    -33.97470462237792
                ]
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    151.0763783444317,
                    -33.98045132346684
                ]
            }
        }
    ]
}

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

jsonDecode ожидает, что вход будет действительным JSON, сериализованным в String fe. { "message": "Hello World!" }. Так что это будет работать: jsonDecode('{"message": "Hello World!"}').

То, что вы передаете ему, является именем файла, оно не будет автоматически читать файл для вас. Вы можете проверить, как это сделать, здесь:

Флаттер - чтение текстового файла из активов

1 голос
/ 04 марта 2020

На самом деле вы не загружаете данные из файла json.

Попробуйте:

var jsonString = await rootBundle.loadString('Sample-JSON-data.json')
...