在操作脚本3中将JSON对象解析为自定义类对象

时间:2011-08-08 15:46:52

标签: json actionscript-3

我想在Action脚本3中将JSON字符串解析为我的自定义对象。是否有一些libs可以执行此操作。或者任何想法我怎样才能做到这一点。感谢名单!

以下是我想要收到的一个例子:

{
    "result":{
        "birthday_at":"0000-00-00",
        "first_name":"Myname1",
        "level":5,
        "last_name":"MySurname",
        "gender":0
    },
    "cmd":"INFO",
    "service":{
        "code":0,
        "error_desc":""
    }
}

和类UserInfo:

public class UserInfo
{
  public Date birthday_at;
  public String first_name;
  public String last_name;
  public int level;
  public int gender;
}

我想要将JSON字符串解析为我班级的字段?我怎样才能以最简单的方式和正确的方式做到这一点?感谢名单!

3 个答案:

答案 0 :(得分:3)

var obj:Object = JSON.decode( jsonString );
var user:UserInfo = new UserInfo();

for ( var prop:String in obj )
    user[prop] = obj[prop];

这不适用于具有getter的自定义类型(只读属性)。 describeType可用于仅获取可设置的属性,但存在性能问题。

Darron Schall有一个很棒的解决方案来获取你的JSON.parse(jsonString)普通对象并将其转换为自定义类型的对象。

https://github.com/darronschall/ObjectTranslator

答案 1 :(得分:2)

有Adobe的JSON解析器。

https://github.com/mikechambers/as3corelib/tree/master/

import com.adobe.serialization.json

答案 2 :(得分:2)

使用上一个答案中提到的类,您只需要执行以下操作:

 var obj:Object = JSON.decode( jsonString );
 var user:UserInfo = new UserInfo();

 for ( var prop:String in obj )
    user[prop] = obj[prop];