2012-01-25 23 views
7

मैं एक जावास्क्रिप्ट वस्तु है पार्स करने के लिए प्राप्त करें:Coldfusion एक json अनुरोध

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 में, मैं एक चर करने के लिए प्रत्येक "भाग" आवंटित करने के लिए कोशिश कर रहा हूँ:

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

मैं सूची को कोल्डफ्यूजन के रूप में कैसे पार्स करूं?

उत्तर

12

मैं एक पोस्ट वर के रूप में डेटा भेजा होता,

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

और फिर एक चर में पार्स:

<cfset structJSON = deserializeJSON(FORM.json)> 

उस समय, cfdump संरचना यह सामग्री है निरीक्षण करने के लिए इतना है कि आप जानते हैं कि उन्हें कैसे पहुंचाया जाए।

चूंकि हम नहीं जानते कि जेसन संरचना जो आप कोल्डफ्यूजन में गुजर रही है, मुझे पता नहीं है कि structJSON.list में क्या है या यह एक त्रुटि क्यों फेंक रहा है।

संपादित करें: आह मैं अब आपका जेसन देखता हूं।

आपकी सूची मान्य जेसन नहीं है, { और } से [ और ] बदलें।

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

मुझे लगता है ... मेरे सीएफडम्प का एक स्क्रीनशॉट जोड़ा गया। – redconservatory

संबंधित मुद्दे