首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用messagepack和as3序列化对象

使用messagepack和as3序列化对象
EN

Stack Overflow用户
提问于 2012-10-09 12:06:49
回答 1查看 549关注 0票数 0

这是一个非常简单的问题,但是找不到任何关于它的文档。

我有一个简单的类:

代码语言:javascript
复制
public class User
{
    public var name:String;
    public var age:int;
}

我想使用以下代码将其序列化:

代码语言:javascript
复制
var user:User = new User();
user.age = 15;
user.name = "mike";
//now serialize
var bytes:ByteArray = MessagePack.encoder.write(vo);

但我得到一个错误:

代码语言:javascript
复制
Error: MessagePack handler for type base not found

如何让MessagePack知道User类是什么,如何序列化它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 22:41:15

MessagePack看起来不像大多数序列化程序那样能够序列化类。

我建议您在User类中添加一个toObject方法:

代码语言:javascript
复制
public function toObject():Object
{
    return {age:this.age, name:this.name}:
}

然后你可以序列化你的用户:

代码语言:javascript
复制
var bytes:ByteArray = MessagePack.encoder.write(user.toObject());

您还可以添加一个静态fromObject方法,该方法接受一个对象并返回一个用该对象初始化的新用户。

代码语言:javascript
复制
static public function fromObject(o:Object):User
{
    var u = new User();
    u.age = o.age;
    u.name = o.name;

    return u;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12792672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档