ColdFusion не сохраняет порядок, в котором элементы были назначены структуре.
Это создает проблему, когда в моем конкретном случае мне нужно создать конверт SOAP из этой структуры, а получателю необходимо данные в конверте в определенном порядке.
Начиная с ColdFusion 2016 и выше, в методе StructNew () есть опция «type», в которой можно указать «Ordered». К сожалению, я все еще на CF9.02 ... Например (в CF9):
<cfscript>
myStruct=StructNew();
myStruct.one=StructNew();
myStruct.one.item1="Old Trafford";
myStruct.one.item2="Anfield";
myStruct.two=StructNew();
myStruct.two.item3="Stamford Bridge";
myStruct.two.item4="Villa Park";
myStruct.three=StructNew();
myStruct.three.item5="St James Park";
myStruct.three.item6="Emirates Stadium";
WriteDump(myStruct);
</cfscript>
Вывод:
{"ONE":{"ITEM2":"Anfield","ITEM1":"Old Trafford"},"THREE":{"ITEM6":"Emirates Stadium","ITEM5":"St James Park"},"TWO":{"ITEM4":"Villa Park","ITEM3":"Stamford Bridge"}}
Как видите, порядок зашифрован.
Вторая проблема - это верхний регистр. Все элементы преобразуются в верхний регистр ...
Это проблема для конверта SOAP, потому что он чувствителен к регистру.