正如标题所示,是否可以使用AMF编码/解码字典(没有子类化,即)?
例如,这是一个测试用例:
function serializeAndReload(obj:*):* {
var serialized:ByteArray = new ByteArray();
serialized.writeObject(obj);
serialized.position = 0;
return serialized.readObject();
}
function test():void {
var d:Dictionary = new Dictionary();
d[{}] = 42;
d[d] = true;
var x:* = serializeAndReload(d); // <<< x is an instance of Object
trace(x['[object Object]']); // <<< traces '42'
}
答案 0 :(得分:0)
你可能过分思考。我使用Object而不是Dictionary,它使用AMF自动编码。我一直使用pyamf来传递Objects / dicts,它总是在我没有任何精神上的努力下工作。从来没有我需要手动序列化/反序列化任何东西
答案 1 :(得分:0)
Dictionary
中的密钥也需要序列化。
[RemoteClass(alias="Foo")]
public class Foo
{
}
测试:
var d:Dictionary = new Dictionary();
var f:Foo = new Foo();
d[f] = "Hello";
var ba:ByteArray = new ByteArray();
ba.writeObject(d);
ba.position = 0;
var d2:Dictionary = Dictionary(ba.readObject());
for (var key:* in d2)
{
trace(getQualifiedClassName(key));
trace(d2[key]);
}
输出:
Foo
Hello