如何在 ColdFusion <2016 中保留结构中的分配顺序

2023-12-28

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>

Output:

{"ONE":{"ITEM2":"Anfield","ITEM1":"Old Trafford"},"THREE":{"ITEM6":"Emirates Stadium","ITEM5":"St James Park"},"TWO":{"ITEM4":"Villa Park","ITEM3":"Stamford Bridge"}}

正如您所看到的,顺序是混乱的。

第二个问题是大写字母。所有项目都转换为大写...
对于 SOAP 信封来说这是一个问题,因为它区分大小写。


  1. Order.
    解决方案是使用 java LinkedHashMap,它可以像 ColdFusion 中的结构一样使用。
    所以,我只需要更换StructNew();
    with: createObject("java", "java.util.LinkedHashMap").init();

  2. 大写:
    通过它们的字符串名称分配/寻址它们。这将保留案件。

所以,例子就变成了:

<cfscript>
       myStruct=createObject("java", "java.util.LinkedHashMap").init();
       myStruct['one']=createObject("java", "java.util.LinkedHashMap").init();
       myStruct['one']['item1']="Old Trafford";
       myStruct['one']['item2']="Anfield";
       myStruct['two']=createObject("java", "java.util.LinkedHashMap").init();
       myStruct['two']['item3']="Stamford Bridge";
       myStruct['two']['item4']="Villa Park";
       myStruct['three']=createObject("java", "java.util.LinkedHashMap").init();
       myStruct['three']['item5']="St James Park";
       myStruct['three']['item6']="Emirates Stadium";
       WriteDump(SerializeJSON(myStruct));
</cfscript>

Output:

{"one":{"item1":"Old Trafford","item2":"Anfield"},"two":{"item3":"Stamford Bridge","item4":"Villa Park"},"three":{"item5":"St James Park","item6":"Emirates Stadium"}}

订购完好并保存完好!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ColdFusion <2016 中保留结构中的分配顺序 的相关文章

  • ColdFusion:无效的 XML 控制字符(十六进制)

    我正在尝试使用创建一个 xml 对象
  • Python struct.pack() 'struct.error: bad char in struct format' 尝试保存字节顺序时

    我正在尝试打包一个字符串和字符串的长度 fmt
  • 使用 cfchart 标签在单个饼图中显示多个查询的数据

    请考虑以下代码 现在我的代码中有以下代码 cfm页面内的 tag DataSource xx xx x xx Name of the database sgemail Name of the relevant column event vc
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 使用 cfdocument 时仅将页脚添加到最后一页

    我正在使用创建多页文档cfdocument 使用动态文本创建 因此可以有任意数量的页面 甚至一页 我可以用
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • C 中使用指针的结构冒泡排序

    我想使用 C 中的冒泡排序算法和指针对结构数组进行排序 我有一个汽车结构 typedef struct char model 30 int hp int price cars 我为 12 个项目分配内存 cars pointer cars
  • 调用名称中带有变量的变量 - Coldfusion?

    尝试使用方括号表示法来引用动态变量 如果您想了解应用程序 我正在循环访问由查询创建的一组产品 为每个产品创建与其唯一 SKU 相关的字段 我已将其范围缩小到这段代码 当我尝试运行它时 它会抛出 无效表达式 错误
  • 单个成员结构的对齐和大小保证

    给定一个 可能非 POD struct具有单个成员 没有继承 也没有虚方法 struct Foo Bar value Foo do something C 是否保证Foo将具有相同的对齐方式并且sizeof as Bar 如果不能 那么可以
  • 如何将 UDF 中的结构或类数组返回到数据帧列值中?

    d ID 1 pID 1000 startTime 2018 07 02T03 34 20 endTime 2018 07 03T02 40 20 ID 1 pID 1000 startTime 2018 07 02T03 45 20 en
  • memcpy 到动态存储结构安全吗?

    Context 我正在审查一些代码 这些代码从 IO 描述符接收数据到字符缓冲区 对其进行一些控制 然后使用接收到的缓冲区的一部分来填充结构 突然想知道是否可能涉及严格的别名规则违规 这是一个简化版本 define BFSZ 1024 st
  • Swift 结构类型集

    说我有一个struct 可以是任何东西 struct Cube var x Int var y Int var z Int var width Int 然后我该如何创建一个Set这些点中 是否存在两个具有相同属性的对象 let points
  • 使用 Maven 进行 Coldfusion 项目

    我必须处理相当丑陋且大量的 ColdFusion 代码 到目前为止 这些代码都是通过在生产服务器上直接修改来维护的 不要问 我设法清除它的重复和备份并将其放入 Subversion 现在我需要选择一个 make 系统以便能够将其放入持续构建
  • 如何在 Julia 中引用结构本身

    我有这个代码 struct MyStruct text String function MyStruct text String text text do other things end end 当我写这篇文章时 我意识到朱莉娅没有认识到
  • 访问结构向量

    我有一个结构 struct OutputStore int myINT string mySTRING 如果我创建一个 OutputStore 类型的数组 如下所示 OutputStore OutputFileData new Output
  • 结构中未初始化字段没有 Clang 警告

    考虑以下结构 typedef struct foo int a int b foo 我的编译器不会对以下语句发出警告 foo m 300 为什么没有发出警告 我预计会收到警告 因为我没有为结构的最终字段提供任何值 这是我的编译器调用 cla
  • 在 ColdFusion 中调用 String 上的底层 java 方法是否安全?

    Adobe ColdFusion 基于 Java 构建 CFML CFSCRIPT 中几乎所有简单变量都是java lang String直到操作需要它是某种类型 我一直想用startsWith in String而不是体积更大的 CFML
  • 从其对象获取结构体字段的名称和类型

    例如 我有一个类似这样的结构 struct Test int i float f char ch 10 我有一个该结构的对象 例如 Test obj 现在 我想以编程方式获取字段名称和类型obj 是否可以 顺便说一句 这是 C 你正在要求C
  • 仅导出嵌入结构实现的方法子集

    是否可以仅导出嵌入结构实现的方法的子集 这是一种与减少代码复制和粘贴非常不同的方法吗 还有更惯用的方法吗 type A struct func a A Hello fmt Println Hello func a A World fmt P
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe

随机推荐

  • 如何强制 WPF ListView 重新查询它的 ItemSsource?

    我正在即时重写其 XML itemSource 并希望它立即使用新数据 您应该使用 ObervableCollection 当此集合更新时 ListView 也会更新 但如果出于某种原因您不想使用它 请使用 listView Invalid
  • 通过 oData API 从 Power BI 访问 Azure Devops 用户故事中的描述和接受标准

    我正在尝试从 PowerBI 的 Azure DevOps 的用户故事工作项类型中检索描述和接受标准字段 我尝试过 oData feed 还配置了分析视图 并搜索了在线文档 但均无济于事 有没有人成功地做到过这一点 我实际上想做的是确定两个
  • 简单类 - 是内存泄漏吗?

    我有一个非常简单的类 它有一个整数变量 我只是将变量 i 的值打印到屏幕上并递增它 并使线程休眠 1 秒 当我针对此方法运行探查器时 即使我没有创建任何新变量 内存使用量也会缓慢增加 执行此代码大约 16 小时后 我发现内存使用量增加到 4
  • 如何禁用基于颜色的分组条形图表达?

    我有一个包含 3 列的 pandas 数据框 名称 组 值 我想制作一个水平条形图 从最高值到最低值排序 并根据组列中的值对每个条形进行着色 问题是 当我添加颜色参数时 条形也会按颜色排序 是否可以使条形不按颜色分组在一起 这是我尝试过的
  • 如何在Flutter中制作倒圆角的容器?

    这是制作圆角容器的方法 Container decoration BoxDecoration borderRadius BorderRadius circular 10 但是有没有办法制作如下图所示的倒圆角呢 我在网上找不到任何东西 作为一
  • jQuery - 触发器('click')在 IE 中不起作用 - 对象不支持此属性或方法

    我有一个图像 悬停时有一个淡入淡出的覆盖 div 其中显示文本链接 单击链接时 它会打开一个包含内容的影子框 我希望整个覆盖 div 都是可点击的 所以我使用了 div overlay each function this click fu
  • 错误 SocketEnginePolling:长轮询请求期间出错

    let manager SocketManager socketURL URL string Some url config log true compress var socket SocketIOClient var name Stri
  • 使用 Socket 将数据从 [Python 客户端] 发送到 [C# 服务器]

    我想使用简单的套接字应用程序将字节数据从 Python 客户端发送到 C 服务器 C 服务器与 C 客户端运行良好 但是当我尝试使用 Python Socket 将数据发送到 C 服务器时 数据永远不会到达 我不太习惯 Python 有人可
  • PhoneGap、Bootstrap 还是 JQuery Mobile? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个用 HTML CSS 和 JavaScript 编码的 Web 应用程序 我对这个应用程序的目标是最终让它在各种移动设备上运行 并保留网
  • 我可以将 webpack 源映射和源代码文件放在单独的文件夹中吗?

    我读了这个问题生产中的源映射文件 安全吗 https stackoverflow com questions 27345520 source maps files in production is it safe 我想用源代码在不同的文件夹
  • 在 Grails 中验证 IP 地址

    我正在寻找一种通过约束验证 Grails 中的 IP 地址的方法 这样的事情可能吗 package example class Ip String ip static constraints ip unique true inetAddre
  • C#:shlwapi.dll 中 StrCmpLogicalW 的实现或替代

    为了在我的应用程序中进行自然排序 我当前在 shlwapi dll 中 P Invoke 一个名为 StrCmpLogicalW 的函数 我正在考虑尝试在 Mono 下运行我的应用程序 但当然我不能拥有这个 P Invoke 东西 据我所知
  • Python 继承 - 如何禁用函数

    在 C 中 您可以通过在子类中将其声明为私有来禁用父类中的函数 在 Python 中如何做到这一点 IE 如何从孩子的公共界面隐藏父母的功能 Python 中确实不存在任何真正的 私有 属性或方法 您可以做的一件事就是简单地重写子类中不需要
  • 声明空析构函数可防止编译器调用 memmove() 来复制连续对象

    考虑以下定义Foo struct Foo uint64 t data 现在 考虑以下定义Bar 它具有相同的数据成员Foo 但有一个empty 用户声明的析构函数 struct Bar Bar lt empty user declared
  • 反转位数组中的位顺序

    我有一长串位存储在无符号长整数数组中 如下所示 struct bit array int size nr of bits unsigned long array the container that stores bits 我正在尝试设计一
  • 将图像从 url 转换为 Base64

    使用图像文件 我获取需要发送到网络服务的图像的 URL 从那里图像必须保存在我的系统本地 我正在使用的代码 var imagepath imageid val from this getting the path of the select
  • Cordova iOS 将单页屏幕方向更改为横向

    我有一个用 Cordova 3 为 iPhone 开发的应用程序 目前该应用程序运行良好 我还限制了当前应用程序的横向视图 即应用程序仅以纵向显示 应用程序由大量描述和报告页面组成 我想要的是纵向显示所有页面并横向显示报告页面 我使用 Ba
  • 在MFC中创建窗口时如何获得最大可能的窗口大小?

    我需要获得正在创建的窗口的最大可能高度和宽度 窗口不会首先最大化 怎么做 您可以使用获取系统指标 https msdn microsoft com en us library windows desktop ms724385 v vs 85
  • 将 SQL 转换为 LINQ 查询 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有以下 SQL 查询 我需要将它放在 LINQ 中 我尝试了几件事 但无法让它工作 这是 SQL 查询 SELECT ST Descrip
  • 如何在 ColdFusion <2016 中保留结构中的分配顺序

    ColdFusion 不保留元素分配给结构的顺序 在我的特定情况下 当我需要从此结构创建 SOAP 信封并且接收者需要以特定顺序接收信封中的数据时 这就产生了问题 从 ColdFusion 2016 及更高版本开始 StructNew 方法