1

我正在尝试解码整数列表,例如“[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它就可以工作。

4

2 回答 2

1

这对我来说很好:

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]
于 2014-12-12T08:41:08.673 回答
1

感谢@luizmineoRedstone Mapper 的 Github 存储库中的回答。显然你可以只给出列表的特定类型,因为

如果json对象是一个数组,解码会自动产生一个List

接下来出现的这行代码将适用于问题中暴露的外壳

decodeJson(json, int);

该技巧通常适用于任何类型。

于 2014-12-13T21:14:03.557 回答