2012-01-25 11 views
7

JSONリクエストを解析するには、Get:ColdFusionは、私はjavascriptオブジェクトを持っている

data = { color: red, day: monday, list: {1,2,3,4,5,6}} 

私はjQueryの使用してColdFusionページにこれを渡します

enter image description here

$.ajax({ 
       type: "POST", 
       url: "ajax_myPage.cfm", 
       data: JSON.stringify(data), 
       contentType: "application/json", 
       dataType: "json" }); 

これは私にcfdumpです

(「リスト」には実際にメールのリストが含まれますが、 ColdFusionで今1つのアドレス)

、私は変数にそれぞれ「パート」を割り当てるしようとしています:

<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> 

私は、

Complex object types cannot be converted to simple values. 

を「リスト」とのエラーを取得していますがリストをColdFusionとしてどのように解析するのですか?

答えて

12

私は、ポストVARとして

data: { json: JSON.stringify(data) } 

にデータを送信し、その変数にそれを解析されています:

その時点で
<cfset structJSON = deserializeJSON(FORM.json)> 

cfdump構造をするように、それは中身だ検査しますあなたはそれらにアクセスする方法を知っています。

ColdFusionに渡すjson構造の構成要素がわからないため、structJSON.listには何が含まれているのか、なぜそれがエラーを投げるのかはわかりません。

編集:ああ、私は今あなたのjsonを参照してください。

あなたのリストは有効ではありませんjson、変更{}から[]を変更します。

data = { color: "red", day: "monday", list: [1,2,3,4,5,6]} 
+0

私の参照してください...私のcfdumpのスクリーンショットを追加しました。 – redconservatory

関連する問題