代码之家  ›  专栏  ›  技术社区  ›  Kip

ColdFusion是否有创建结构的简短语法?

  •  10
  • Kip  · 技术社区  · 15 年前

    在ColdFusion中是否有创建结构的“short”语法?我想替换这个详细的代码:

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

    使用类似于javascript对象的内容:

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

    有这样的东西吗?

    5 回复  |  直到 7 年前
        1
  •  16
  •   Tomalak    7 年前

    ColdFusion 8(及更高版本)具有结构文字符号:

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

    但是,有一些附加的字符串:

    注: ColdFusion 9修复了上面概述的错误,所以现在任何可用的CF版本都可以。我还在链接中留作参考。

        2
  •  6
  •   Raspin    15 年前

    如果您试图在CF8中简化结构语法时遇到嵌套和/或内联缺陷,您可以使用这个看似简单的函数:

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

    然后可以使用以下语法:

    <cfdump var="#nStruct(
        a=1,
        b=nStruct(
            c=2,d=3
        )
    )#" />
    
        3
  •  3
  •   user160578    15 年前

    在RailO 3及以上版本中,您创建如下:

    • 结构:结构(A:1,B:2,C:3,D:“AAA”)
    • 数组:数组(1,2,3,“aaa”)
    • 查询:查询(col1:数组(1.1,1.2,1,3),col2:数组(2.1,2.2,2,3))
        4
  •  2
  •   Sam Farmer    15 年前

    在ColdFusion 8及更高版本中,您可以创建这样的结构:

    ref={template="label", language="en"}
    
        5
  •  1
  •   Loftx    15 年前

    你可以使用 cfjson . 将组件添加到正在使用的范围(例如请求范围):

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

    就像这样称呼它:

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