使用Redstone Mapper </int>解码Dart中的List <int>

时间:2014-12-11 21:26:50

标签: json serialization dart redstone.dart

我正在尝试解码整数列表,例如“[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 个答案:

答案 0 :(得分: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]

答案 1 :(得分:1)

感谢@luizmineo在Redstone Mapper的Github存储库中回答here。显然,您可以只提供列表的特定类型,因为

  

如果json对象是数组,则解码将生成List   自动

接下来出现的这行代码将适用于问题中公开的内容

decodeJson(json, int);

这个技巧适用于任何类型。