在 Coldfusion 中格式化 json

arc*_*123 1 coldfusion cfml

SerializeJSON我对CFQUERY 的输出感到困惑。下面的代码:

<cfsetting showdebugoutput="yes">
<cfheader name="Content-Type" value="application/json">

<cftry>
<cfquery name="GetData" datasource="dsn">
  with cte as (
      select distinct ZipCode from db.dbo.table1 where ZipCode in (#URL.Zip#)
  )
  SELECT
      cte.ZipCode
      , '##' +  CONVERT(VARCHAR(max), CRYPT_GEN_RANDOM(3), 2) as Color
  from cte
</cfquery>

<cfoutput>
#SerializeJSON(GetData)#
</cfoutput>

  <cfcatch type="any">
    Error: <cfoutput>#cfcatch.message#</cfoutput>
  </cfcatch>
</cftry>
Run Code Online (Sandbox Code Playgroud)

创建此输出:

{"COLUMNS":["ZIPCODE","COLOR"],"DATA":[["54814","#3269B7"],["60050","#DC3E08"]]} 
Run Code Online (Sandbox Code Playgroud)

#URL.ZIP#变量 =60050,54814

我需要该DATA组件将 JSON 格式化为邮政编码作为键,颜色代码作为数据值。

我怎么知道SerializeJSON我需要这样呢?

谢谢

RRK*_*RRK 5

你可以queryFormat将第二个参数()SerializeJSON(data[, queryFormat[, useSecureJSONPrefix[, useCustomSerializer]]])

serializeJSON(GetData, 'STRUCT')
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样。

[{"邮政编码": "54814","颜色": "#3269B7"}, {"邮政编码": "60050","颜色": "#DC3E08"}]