我有一个javascript对象:
data = { color: red, day: monday, list: {1,2,3,4,5,6}}
Run Code Online (Sandbox Code Playgroud)
我使用jQuery将其传递给coldfusion页面:
$.ajax({
type: "POST",
url: "ajax_myPage.cfm",
data: JSON.stringify(data),
contentType: "application/json",
dataType: "json" });
Run Code Online (Sandbox Code Playgroud)
这是我的cfdump:

("列表"实际上将包含电子邮件列表,但我现在只测试一个地址)
在coldfusion中,我试图将每个"部分"分配给变量:
<cfset requestBody = toString( getHttpRequestData().content ) />
<!--- Double-check to make sure it's a JSON value. --->
<cfif !isJSON( requestBody )>
<!--- Echo back POST data. --->
<h3>The URL you requested does not provide valid JSON</h3>
<cfdump
var="#requestBody#"
label="HTTP Body"
/>
<cfelse>
<cfset cfData=DeserializeJSON(requestBody)>
<cfset color = cfData.color>
<cfset day = cfData.day>
<cfset myList = cfData.list>
</cfif>
Run Code Online (Sandbox Code Playgroud)
但是我收到"list"错误,
Complex object types cannot be converted to simple values.
Run Code Online (Sandbox Code Playgroud)
如何将列表解析为Coldfusion?
use*_*654 12
我会把数据作为post var发送,
data: { json: JSON.stringify(data) }
Run Code Online (Sandbox Code Playgroud)
然后将其解析为变量:
<cfset structJSON = deserializeJSON(FORM.json)>
Run Code Online (Sandbox Code Playgroud)
此时,cfdump检查其内容的结构使您知道如何访问它们.
由于我们不知道你传递给ColdFusion的json结构是什么,我不知道structJSON.list包含什么或为什么会抛出错误.
编辑:啊,我现在看到你的json.
您的清单是不是有效的JSON,变化{和}以[和].
data = { color: "red", day: "monday", list: [1,2,3,4,5,6]}
Run Code Online (Sandbox Code Playgroud)