Имеет ли ColdFusion короткий синтаксис для создания структуры?

Есть ли какой-нибудь "короткий" синтаксис для создания структуры в ColdFusion? Я бы хотел заменить этот подробный код:

<cfscript>
  ref = StructNew();
  ref.Template = "Label";
  ref.Language = "en";
  stcML = GetPrompts(ref);
</cfscript>

с чем-то более похожим на объект JavaScript:

<cfscript>
  stcML = GetPrompts({ Template: "Label", Language: "en" });
</cfscript>

Есть ли что-нибудь подобное?

Ответ 1

Coldfusion 8 (и вверх) имеет строковое литеральное обозначение:

<cfset objData = {
  Key1 = "Value1",
  Key2 = "Value2"
} />

Однако есть несколько строк:

Примечание. ColdFusion 9 исправил ошибки, описанные выше, поэтому с любой версией CF, доступной в настоящее время, вы будете в порядке. Я все еще оставляю ссылки для ссылок.

Ответ 2

Если ваши попытки упростить синтаксис структуры в CF8 при запуске и/или встроенных недостатках вы можете использовать эту обманчиво простую функцию:

<cfscript>
    function nStruct(){
        return arguments;
    }
</cfscript>

Затем вы можете использовать этот синтаксис:

<cfdump var="#nStruct(
    a=1,
    b=nStruct(
        c=2,d=3
    )
)#" />

Ответ 3

В Railo 3 и выше вы создаете так:

  • Struct: struct (a: 1, b: 2, c: 3, d: "aaa" )
  • Массив: массив (1,2,3, "aaa" )
  • Запрос: query (col1: array (1.1,1.2,1,3), col2: array (2.1,2.2,2,3))

Ответ 4

В ColdFusion 8 и выше вы можете создать такую ​​структуру:

ref={template="label", language="en"}

Ответ 5

Вы можете использовать cfjson. Добавьте компонент в область действия, которую вы используете (например, область запроса):

<cfobject name="request.json" component="cfc.json">

и назовите его так:

<cfset aStructure = request.json.decode('{ Template: "Label", Language: "en" }')>