【问题标题】:Convert from PHP array(array()) to CF从 PHP 数组(array()) 转换为 CF
【发布时间】:2014-01-23 07:04:23
【问题描述】:

以及如何将其转换为 CF

  $client = array( array( "apPat" => 'Estrada', "apMat" => 'Castillo' ) );

我需要将此对象从 CF 发送到网络服务,但网络服务不接受它。

我试过了

<cfset client = arraynew[]>
<cfset client[1] = structnew()>
<cfset client[1].apPat = "Estrada">
<cfset client[1].apMat = "Castillo">

这是我的真实代码

<cfset arrAgente[1] = {}>
<cfset arrAgente[1].ramoTecnico = "1">
<cfset arrAgente[1].codAgente = "5095">

<cfset emissionRequest = {}>
<cfset emissionRequest.ramoTecnico = "1">
<cfset emissionRequest.codAgente = "5095">
<cfset emissionRequest.poliza = {}>
<cfset emissionRequest.poliza.codTipoPoliza = "2">
<cfset emissionRequest.poliza.ramoComercial = "5">
<!--- here is where I have problems beacuse I need to send an array or a list. The above code I dont have problems, the Net recognize it like a single array the structures----->
<cfset emissionRequest.agente = #arrAgente#>

【问题讨论】:

  • 您需要提供更多信息。 “WS不接受”是什么意思?是不是出错了?错误是什么? WS 似乎不喜欢的数据结构是什么?恐怕我们不是心灵感应的:你需要向我们提供所有必要的信息才能帮助你。推荐阅读:cfmlblog.adamcameron.me/2013/09/…
  • &lt;cfset client = arraynew[]&gt; 不是有效的 CFML。它应该是 &lt;cfset client = arraynew(1)&gt;&lt;cfset client = []&gt;... 请记住 @AdamCameron 的观点,即“客户”被用作范围
  • 嘿,好地方,邓克。
  • 对不起亚当。 Ws = webservice 我为示例放置了客户端变量,但实际上这是我的代码,这部分是我遇到问题的地方。网络无法识别类似数组 的数组
  • 例如 ths 是我必须发送的结构 Emissionrequest Emissionrequest.var1 = 1 Emissionrequest.var2 = 2 Emissionrequest.poliza.codtipopoliza = 2 Emissionrequest.poliza.ramcomercial = 5 --- 数组或列表代理,这就是问题----emissionrequest.agente[1].ramotecnico = 1 emitrequest.agente[1].codagente = 5095

标签: php coldfusion


【解决方案1】:

client 是 CFML 中的一个作用域,所以我怀疑你可以这样写。使用不同的变量名(无论如何,“client”首先不是一个描述性很强的变量名)。

文档:“Scope types

【讨论】:

    【解决方案2】:

    我不了解 PHP,但我知道 search tells me 的快速 array(array()) 在 PHP 中创建了一个多维数组。在您提到的 cmets 中(我认为)需要一个多维数组 - 网络无法识别类似数组的数组 ... 如果是这种情况,那么您需要创建一个多维数组在冷融合中。你这样做(reference):

    <cfset arrAgente = ArrayNew(2) />
    

    所以你可以试试这样的:

    <cfset arrAgente = ArrayNew(2) />
    <cfset strAgente = StructNew() />
    
    <cfset strAgente.apPat = "Estrada">
    <cfset strAgente.apMat = "Castillo">
    <cfset arrAgente[1][1] = strAgente />
    

    这给了你这个:

    如果大小写很重要(请注意,索引名称为全大写),然后尝试以这种方式保留您给它的大小写:

    <cfset arrAgente = ArrayNew(2) />
    <cfset strAgente = StructNew() />
    
    <cfset rv = StructInsert(strAgente,"apPat","Estrada") />
    <cfset rv = StructInsert(strAgente,"apMat","Castillo") />
    <cfset arrAgente[1][1] = strAgente />
    

    这给了你这个:

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 2020-07-23
      相关资源
      最近更新 更多