Расшифровка списка<int> в Dart с помощью Redstone Mapper

Я пытаюсь декодировать список целых чисел, например, "[1,2,3,4]", как это

decodeJson(json, new List<int>().runtimeType)

но я получаю эту ошибку

MapperException:  UnsupportedType: List<int>. This type wasn't mapped by redstone_mapper's
transformer. See http://goo.gl/YYMou2 for more information.

Вот мой pubspec.yaml

name: restonetest
description: A sample web application
dependencies:
  angular: any
  appengine: any
  browser: any
  di: any
  fp: any
  redstone: any
  redstone_mapper: any
  shelf_static: any
transformers:
- redstone_mapper
- angular:
    html_files:
    - lib/client/models/evento/evento.html

Что я должен делать?

редактировать

Фактическая проблема, кажется, с redstone_mapper трансформатор. Если я возьму это из pubspec.yaml тогда это работает.

2 ответа

Это прекрасно работает для меня:

import 'package:redstone_mapper/mapper.dart';
import 'package:redstone_mapper/mapper_factory.dart';

main() {
  bootstrapMapper();

  String json = "[1,2,3,4]";

  var x = decodeJson(json, new List<int>().runtimeType);
  print(x);
}

и печатает

[1, 2, 3, 4]

Спасибо @luizmineo за его ответ здесь в репозитории Redstone Mapper's Github. Видимо, вы можете просто дать конкретный тип списка, потому что

Если объект json является массивом, декодер автоматически создаст список

Эта строка кода, которая появится далее, будет работать для тех, кто находится в вопросе

decodeJson(json, int);

Трюк работает для любого типа в целом.

Другие вопросы по тегам