我是Coldfusion的绝对新手(到目前为止1天),我必须学习它才能工作。我来自.NET 背景,所以我试图理解这一切。
我本质上只是想读取一个 XML 文件,并将其作为 JSON 返回。简单的。
XML文件结构:
<countries>
<country code="AU" name="Australia" />
<country code="NZ" name="New Zealand" />
<country code="US" name="United States" />
<country code="UK" name="United Kingdom" />
</countries>
我创建了一个 REST 服务,我使用 cfscript 为其使用 CFC。代码:
component restpath="locations" rest="true"
{
remote Array function getCountries() httpmethod="GET"
{
response = [];
xCountries = xmlParse(expandPath("/data/countries.xml"));
numItems = ArrayLen(xCountries.countries.XmlChildren);
for (i = 1; i LTE numItems; i++)
{
sCountries = StructNew();
sCountries.code = xCountries.countries.country[i].XmlAttributes.code;
sCountries.name = xCountries.countries.country[i].XmlAttributes.name;
arrayAppend(response, sCountries);
}
return response;
}
}
使用这种技术,我在测试中获得了正确的响应,但我有一种奇怪的感觉,它可能效率低下。我只是在想,创建一个新结构并将其添加到循环中的数组中(完整的 xml 文件大约有 100 个项目)可能很笨重。
事实上,我不确定使用结构是否是最好的方法。在 .NET 中,我会创建一个类,然后在它的属性中添加一些东西。我去寻找类似于类的东西,我遇到了一些东西,我创建了一个 Country.cfc 文件:
component accessors="true" output="false"
{
property name="code" type="string";
property name="name" type="string";
}
我遇到的唯一问题是我不知道如何使用它。您是否将这样的组件用于 OOP?还是上面的“结构”方法更好?
TL;博士; 以上是实现这一目标的最佳方法吗?ColdFusion 中是否有这些东西的最佳实践?
欢迎任何其他指示或建议。谢谢