2009-11-09 52 views
0

我正在为我的Flex应用程序编写一个模拟后端服务。因为我可能需要添加/编辑/修改随时间的模拟数据,我宁愿不产生这样的代码中的数据:将数据反序列化为模拟对象的好方法是什么?

var mockData = new Array(); 
mockData.push(new Foo(1, "abc", "xyz")); 
mockData.push(new Foo(2, "def", "xyz")); 
... 

而是我想将数据存储在一个文件中以某种格式,它可以很容易地序列化到我的强类型值对象(即上面的Foo)。理想情况下,我希望以自描述格式创建数据(即每个字段的数据类型,它表示的类别等)

这是否有意义?有什么建议么?

回答

2

我强烈推荐asx3m库。它很容易让序列化到这样一个非常可读的XML格式类Foo的对象:

<com.example.Foo> 
    <myVar>Something</myVar> 
    <myArrList> 
     <string>one</string> 
     <string>two</string> 
    </myArrList> 
</com.example.Foo> 

反序列化的代码看起来是这样的:

Asx3mer.instance.fromXML(someXMLObj) 

该项目网站有一些很好的例子这并不难。

+0

注意:如果尚未假定,则asx3m库也会进行序列化。 – dustmachine 2009-11-09 22:40:29

+0

这太棒了,谢谢!数据文件会变得有点冗长(与CSV之类的东西相比),但是这似乎可以完成这项工作,谢谢。 – Marplesoft 2009-11-10 18:41:33

0

编写一个方法来序列化对象的“膨胀”版本。将其输出放入一个文件中,并将其作为测试设置的一部分进行加载。当您想要编辑这些值时,只需编辑xml文件即可。我不知道这是否可能在flex中,但我通常会将这些文件作为资源包含在我的测试库中,这样我就不需要将文件复制到任何特定位置进行测试运行。

+0

我认为这是一个很好的策略,但我试图弄清楚什么是一个好的可读但可分析的格式? – Marplesoft 2009-11-09 19:36:57

+0

XML?我不确定哪些库可用于Flex。查看dustmachine的建议。 – pattersonc 2009-11-09 20:06:11

+0

Flex支持用于xml的e4x – Amarghosh 2009-11-10 06:27:25

相关问题