如何创建一个 JSON 对象并将此 JSON 对象传递给外部 JavaScript 函数?
How to make a JSON object and pass this JSON object into an external JavaScript function?
我正在用 Dart 开发游戏,我想将绘图迁移到 PIXI.js。基本上我想到的一种方法是将游戏状态转换为 JSON 对象,并将此 JSON 对象传递给外部 JS 方法,然后该方法将创建 PIXI 容器。
如何制作 JSON 对象以及如何将其传递给外部 JavaScript 函数?
import 'dart:convert';
...
var json = JSON.encode(data);
...
var data = JSON.decode(json);
您可能想对 dart-js-interop 使用 https://pub.dartlang.org/packages/js。
JSON.encode
和 JSON.decode
是您正在寻找的东西,但它们适用于原始类型(注意,例如 DateTime - 不是原始类型)和原始类型的集合.所以如果你想为对象做它,你应该将它转换为 map/from 映射。当对象被传递给 JSON.encode
时,可以自动调用到 map 的转换,如果这个对象有方法 Map toJson()
,从 map 的转换应该显式地完成(例如,使用带有 Map
参数的构造函数) .
此外,这很有用:我更喜欢避免隐式 toJson
调用,因为当它抛出异常时,在这种情况下您将看不到它的消息和调用堆栈。
可以找到有用的链接和一些相关信息 in this question。
我正在用 Dart 开发游戏,我想将绘图迁移到 PIXI.js。基本上我想到的一种方法是将游戏状态转换为 JSON 对象,并将此 JSON 对象传递给外部 JS 方法,然后该方法将创建 PIXI 容器。
如何制作 JSON 对象以及如何将其传递给外部 JavaScript 函数?
import 'dart:convert';
...
var json = JSON.encode(data);
...
var data = JSON.decode(json);
您可能想对 dart-js-interop 使用 https://pub.dartlang.org/packages/js。
JSON.encode
和 JSON.decode
是您正在寻找的东西,但它们适用于原始类型(注意,例如 DateTime - 不是原始类型)和原始类型的集合.所以如果你想为对象做它,你应该将它转换为 map/from 映射。当对象被传递给 JSON.encode
时,可以自动调用到 map 的转换,如果这个对象有方法 Map toJson()
,从 map 的转换应该显式地完成(例如,使用带有 Map
参数的构造函数) .
此外,这很有用:我更喜欢避免隐式 toJson
调用,因为当它抛出异常时,在这种情况下您将看不到它的消息和调用堆栈。
可以找到有用的链接和一些相关信息 in this question。