Flex中HTTPService的这些结果格式之间的真正区别是什么:
text
object
xml
e4x
特别是,最后三个看起来非常接近他们的描述。
答案 0 :(得分:4)
来自HTTPService手册:
object :返回的值是XML,并被解析为ActionScript对象树。这是默认值。
array :返回的值是XML并被解析为ActionScript对象树,但如果顶级对象不是Array,则创建一个新数组并将结果集设置为第一个项。如果makeObjectsBindable为true,那么Array将被包装在ArrayCollection中。
xml :返回的值是XML,并在ActionScript XMLnode对象中作为文字XML返回。
flashvars :返回的值是包含由&符分隔的名称=值对的文本,并将其解析为ActionScript对象。
text :返回的值是文本,并保持原始状态。
e4x :返回的值是XML,并在ActionScript XML对象中作为文字XML返回,可以使用ECMAScript for XML(E4X)表达式访问该对象。
答案 1 :(得分:1)
返回对象的classtype不同。
答案 2 :(得分:0)
我最近遇到了“对象”和“e4x”resultFormat
的一些问题。
我有一个基本WebService类,用于发送请求和接收结果。默认情况下,所有结果都以“对象”的形式返回。但是,有时Flex会查看数据,并将其转换为适当的类型。例如,如果您的XML结果如下所示,它会将其转换为数组对象(不确定原因......但是......):
<root>
<child>text</child>
<child>text text</child>
</root>
现在,像这样的数组对象可以很容易地转换为XML,因为它作为字符串也是XML。
但是,当ObjectProxy
为“object”时,某些XML文档将作为resultFormat
返回,不能转换为XML。
我尝试使用“e4x”,就像这里建议的那样,但后来我遇到了名称空间未被正确保存的问题。
我终于尝试了“xml”,我得到了预期的结果。有趣的是,当您使用Flex调试器检查事件结果属性时,即使您指定了resultFormat
的“xml”,它也会被称为数组。我想这可以轻松地转换为ArrayCollection ......不确定....