1
我打电话给smartsheet.com api,他们将返回一个对象或数组,我可以用下面的代码将对象处理成一个CF查询,但遇到问题处理数组。ColdFusion JSON对象与对象数组
的JSON:
[
{
"id": 2070463980562308,
"name": "Sheet1",
"accessLevel": "OWNER",
"permalink": "https://app.smartsheet.com/b/home?"
},
{
"id": 2810804673243012,
"name": "Project Management",
"accessLevel": "OWNER",
"permalink": "https://app.smartsheet.com/b/home?"
},
{
"id": 3678697304680324,
"name": " - Dispatch Sheets",
"accessLevel": "OWNER",
"permalink": "https://app.smartsheet.com/b/home?"
}
]
我的CF代码:
<cfset jsonData = deserializeJSON(json.smartsheet.sheets.filecontent) />
<!--- Check we have records returned to us --->
<cfif arrayLen(jsonData.sheets)>
<!--- We want to provide the query with column names --->
<cfset strColType = '' />
<!--- To do this, we'll take the first result item... --->
<cfset sheets = jsonData.sheets[1] />
<!--- and get the list of keys from the structure. --->
<cfset thisKeyList = structKeyList(sheets) />
<!---
We now need to provide the column data type.
This example assumes everything is a VarChar.
Looping over the list of keys, we'll append a
datatype to the column type list defined earlier.
--->
<cfloop list="thisKeyList" index="listItem">
<cfset listAppend(strColType,'varChar') />
</cfloop>
<!---
Generate the new query, passing in the
column list, column type list and the data.
--->
<cfset qrySheets = queryNew(
thisKeyList,
strColType,
jsonData.sheets
) />
</cfif>
此代码只有当我得到一个对象back..not数组工作。
后'deserializeJSON()',JS对象成为CF结构,JS阵列变得CF阵列。没有什么棘手的。 ''并调试你的代码。 –
Henry
我明白这不是棘手的问题..我只是没有建立联系。 – AbeS
问问它哪里不适合你,什么是例外,等等。 – Henry