我能够调用返回JSON响应的API。 我将JSON转换为CF变量,但是由于Response包含非标准字符,因此我无法访问该结构以获取要绑定的详细信息。
我需要从此结构中获取职位发布值。 不确定访问该数据的最佳方法。
谢谢 马特
答案 0 :(得分:1)
您可以使用structKeyList
获取键列表,也可以循环搜索结果集合并根据需要创建新变量:
<cfset foo = {
errors = {},
results = {
"urn:li:simpleJobPostingTask:some-long-uuid" = {
id = "urn:li:simpleJobPostingTask:some-long-uuid",
jobPosting = "urn:li:jobPosting:12345",
status = "SUCCEEDED"
}
},
statuses = {}
}>
<cfloop collection="#foo.results#" item="key">
<!--- Do your thing per key --->
</cfloop>
答案 1 :(得分:1)
您将需要使用Coldfusion中的structKey函数直接访问struct键。顺便说一句,响应结构键名称与响应ID相同。
<!--- first we need a test struct to work with --->
<cfscript>
// init some variables
testStruct=structNew();
resultStruct=structNew();
tempStruct=structnew();
// create our struct keys and set a value
tempStruct['id']='ur:li:simpleJobPostingTask:d230xyz';
tempStruct['jobPosting']='urn:li:JobPosting:1234abc';
tempStruct['status']='SUCCESS';
// build our final fake struct
resultStruct=tempStruct;
testStruct['results']['ur:li:simpleJobPostingTask:d230xyz']=resultStruct;
</cfscript>
我们最终的解决方案如下:
<!--- Here is the code you are looking for --->
<cfset firstkey=structKeyArray(testStruct.results)[1] />
<!--- dump the results --->
<cfdump var="#testStruct.results[firstkey]#" />
最终,您的代码应如下所示:
<cfdump var="#testStruct.results[structKeyArray(testStruct.results)[1]]#">