如何创建一个JSON对象并将此JSON对象传递给外部JavaScript函数?

时间:2016-07-01 07:56:40

标签: dart dart-js-interop

我在Dart开发游戏,我想将绘图迁移到PIXI.js.基本上我遇到的一种方法是将游戏状态转换为JSON对象,并将此JSON对象传递给外部JS方法,然后创建PIXI容器。

如何创建JSON对象以及如何将其传递给外部JavaScript函数?

2 个答案:

答案 0 :(得分:3)

import 'dart:convert';

...

var json = JSON.encode(data);
...
var data = JSON.decode(json);

您可能希望将https://pub.dartlang.org/packages/js用于dart-js-interop。

答案 1 :(得分:3)

JSON.encodeJSON.decode是你正在寻找的,但是它们与原始类型(小心,例如DateTime - 不是原始的)和原始类型的集合一起工作。因此,如果您想为对象执行此操作,则应将其转换为map / from map。当对象传递给JSON.encode时,可以自动调用转换为map,如果此对象具有方法Map toJson(),则应该显式地完成从map的转换(例如,使用带有Map参数的构造函数)

此外,这可能很有用:我更喜欢避免隐式toJson调用,因为当它抛出异常时,在这种情况下你不会看到它的消息和调用堆栈。

可以找到有用的链接和一些有关此信息的信息in this question