ColdFusion 11读取多级别JSON文件

ColdFusion 11读取多级别JSON文件,json,coldfusion-11,Json,Coldfusion 11,我有一个功能正常的ColdFusion 11站点,它拉入一个JSON文件并反序列化它,我能够输出内容。工作的JSON如下所示: [ {"body":"some text goes here", "link":"a link is here", "name":"name of product goes here", "language":"language goes here", "tags":["tag1","tag2","tag3","tag4"], "initiati

我有一个功能正常的ColdFusion 11站点,它拉入一个JSON文件并反序列化它,我能够输出内容。工作的JSON如下所示:

[
 {"body":"some text goes here", 
  "link":"a link is here",
  "name":"name of product goes here",
  "language":"language goes here",
  "tags":["tag1","tag2","tag3","tag4"],
  "initiative":"initiative content goes here",
  "start_date":"start date goes here",
  "categories":["cat1","cat2","cat3"]
  }
现在,他们给了我一个新的JSON文件,它有更多的级别,我不知道如何对相同的数据进行新的级别

新JSON

[
 {
  "self_study":
   [
    {
     "categories":["Cat1","Cat2"],
     "link":"some link",
     "initiative":"initiative content goes here",
     "language":"language goes here",
     "name":"name of product",
     "tags":["tag1","tag2","tag3","tag4"],
     "body":"some text goes here"
    }
   ],
  "scheduled":
   [
    {
     "categories":["Cat1","Cat2"],
     "link":"some link",
     "initiative":"initiative content goes here",
     "language":"language goes here",
     "name":"name of product",
     "tags":["tag1","tag2","tag3","tag4"],
     "body":"some text goes here"
    }
   ]
 }
] 
使用第一个JSON文件,我可以使用CFLOOP循环数据

<cffile action="read" file="#ExpandPath("./MoocJson.json")#" variable="myxml">
<cfset mydoc = deserializedJSON(myxml)>
<cfdump var="#mydoc#">   <!--- this dumps out the JSON in Array format --->

<cfoutput> My Doc Length = #arraylen(mydoc)#</cfoutput>

<!--- Loop through Array of mydoc and out put content --->
<cfoutput>
<cfloop from="1" to="#arrayLen(mydoc)#" index="i">
<cfset Course = mydoc[i]>

#Course.Name# <br>
#Course.body# <br>
#Course.language# <br>
#Course.link# <br>
#Course.initiative# <br>
#Course.start_date# <br>
#ArrayToList(Course.tags)# <br>
#ArrayToList(Course.categories)# <br>

</cfloop>
</cfoutput>
<!--- End of Code --->

关于如何在JSON数组中向下浏览多层JSON?

的任何想法都用方括号[]括起来,结构用大括号{}括起来

对JSON进行反序列化的调用为您完成了所有工作。以第二个文件为例,它是一个包含结构数组的结构数组

因此,如果要从每个数组中获取第一个元素:

mydoc[1].self_study[1].categories[1]
mydoc[1].self_study[1].initiative

显然,您可以使用数组上的所有数组操作和结构上的结构操作。希望这是足够的信息来帮助您。JSON中的数组用方括号[]括起来,结构用大括号{}括起来

对JSON进行反序列化的调用为您完成了所有工作。以第二个文件为例,它是一个包含结构数组的结构数组

因此,如果要从每个数组中获取第一个元素:

mydoc[1].self_study[1].categories[1]
mydoc[1].self_study[1].initiative

显然,您可以使用数组上的所有数组操作和结构上的结构操作。希望这些信息足够让您继续使用。

对于新的JSON文件,计划和自学数组下有多个项目。“向下导航”是什么意思?描述你想做什么。另外,为什么这个变量被称为
myxml
?我在这里没有看到任何XML。对于新的JSON文件,在计划和自学数组下有多个项目。“向下导航”是什么意思?描述你想做什么。另外,为什么这个变量被称为
myxml
?我在这里看不到任何XML。谢谢-这使我不仅对页面的这一部分,而且对另一个函数都有了正确的认识。谢谢-这使我不仅对页面的这一部分有了正确的认识,而且对另一个函数也有了正确的认识。