将动态对象转换为 StringMap

Convert Dynamic Object to StringMap

我正在使用 OpenFl 将 StringMap 保存到 SharedObject

保存到 SharedObject

SO.data.users_arr = new StringMap<Dynamic>();
SO.data.users_arr.set("user1",{varOne:1,varTwo:2});

从 SharedObject 中检索

var users_arr : StringMap<Dynamic> = cast(SO.data.users_arr, StringMap<Dynamic>);

检索给我一个错误:

[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert Object@b868371 to haxe.ds.StringMap.
lib/sim/model/SOControl.hx:37: characters 20-21 : Unexpected .

问题是:如何从动态对象中重新转换以前保存的 StringMap?

谢谢!

最简单的解决方案可能是使用 Serialization mechanism built into Haxe。下面是一些伪代码:

节省:

SO.data.users_arr = Serializer.run(users_arr);

加载中:

var users_arr:StringMap<Dynamic> = Unserializer.run(SO.data.users_arr);