【问题标题】:JSON API Structure to Coldfusion Output到 Coldfusion 输出的 JSON API 结构
【发布时间】:2017-09-25 18:02:15
【问题描述】:

我以为我知道我在做什么,从 API 调用中获取 JSON 结构并在 ColdFusion 中输出值,但我一直收到错误消息。我首先使用 CFHTTP 通过 GET 调用 API。然后我将返回的 JSON 值反序列化,如下所示。

<cfset myJsonStruct = deserializeJSON(#sch.filecontent#) /> 

<!--- <cfdump var="#myJsonStruct#">  --->
<cfdump var="#myJsonStruct.activities#"> 

当我转储反序列化的值时,我得到了下面屏幕抓取中显示的结构。

我现在想遍历绿色数组中显示的数据,但它在“2017-09-20”处阻塞。我猜它不喜欢结构名称有数字或日期?

我做错了什么?

【问题讨论】:

  • 试试这个:
  • 或者这个:&lt;cfdump var="#structFind(myJsonStruct,'2017-09-20')#"/&gt;
  • 如何循环播放?
  • 第一个想法(Randy 的)想法没有奏效。它返回以下错误:元素 2017-09-20 在作为表达式的一部分引用的 CFML 结构中未定义。
  • 在我看来,'2017-09-20' 不是 myJsonStruct 的元素。相反,它是myJsonStruct.days 的一个元素。如果你这样做会发生什么:&lt;cfdump var="#myJsonStruct.days['2017-21-09']#"/&gt;

标签: json coldfusion


【解决方案1】:

使用:

<cfdump var="#myJsonStruct['2017-09-20']#">

但在分析您的转储后,您可能需要使用:

<cfdump var="#myJsonStruct.days['2017-09-20']#">

【讨论】:

    【解决方案2】:

    使用嵌套结构时,请务必记住不能跳过结构。您必须明确指出每个结构中的一个键,直到您要访问的键。为了访问“assignments”键中的数组,请指明路径中的每个键:days['2017-09-20']['assignments']。

    您应该能够转储数组。通过使用括号表示法,您可以引用动态结构键名和非简单字母数字值的键名。

    要访问“班次”数组,请确保指明分配的数组索引:例如 days['2017-09-20']['assignments'][1]['shifts']。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 2014-12-31
      • 2015-12-10
      相关资源
      最近更新 更多