2012-03-22 290 views
0

我的JSON包含特殊字符,如:新行,雙引號等。JSON包含特殊字符

我正在使用Coldfusion服務器端腳本創建JSON。但在特殊字符的情況下,由於格式錯誤的JSON而導致錯誤。在這種情況下我應該怎麼做?

<cfoutput> 
[ 
    <cfset loopIndex=0> 
    <cfloop query="qEvents"> 

     <cfif loopIndex NEQ 0>,</cfif> 

     <cfif is_allday EQ 1> 
      <cfset isallDayEvent = "true"> 
     <cfelse> 
      <cfset isallDayEvent = "false"> 
     </cfif> 

     { 
      "title": "#title#", 
      "start": "#DateFormat(start_date_time,'mm/dd/yyyy')# #TimeFormat(start_date_time,'hh:mm tt')#", 
      "end": "#DateFormat(end_date_time,'mm/dd/yyyy')# #TimeFormat(end_date_time,'hh:mm tt')#", 
      "allDay": #isallDayEvent#, 
      "eventID": "#event_id#", 
      "duration": "#duration#", 
      "note": "#note#", 
      "location": "#location#" 
     } 
     <cfset loopIndex=loopIndex+1> 
    </cfloop> 
] 
</cfoutput> 
+0

您應該發佈您的代碼。 – 2012-03-22 16:04:32

+0

你使用「serailizeJSON()」函數嗎?還是你依靠CFC的退貨格式? JSON如何生成Adil? – 2012-03-22 16:12:03

+1

@全部在 感謝您的回覆。我編輯了這篇文章並添加了代碼。我知道我在做一些失誤。請讓我知道這樣做的正確方法是什麼? – 2012-03-22 16:16:10

回答

11

而不是手寫的JSON,你應該產生結構的數組,然後用serializeJSON()將其轉換爲有效的JSON字符串:

<cfset thisArrayBecomesJSON = [] /> 

<cfloop query="qEvents"> 

    <cfif is_allday EQ 1> 
     <cfset isAllDayEvent = "true" /> 
    <cfelse> 
     <cfset isAllDayEvent = "false" /> 
    </cfif> 

    <cfset thisEvent = { 
     'title' = title, 
     'start' = dateFormat(start_date_time, 'mm/dd/yyyy') & timeFormat(start_date_time, 'hh:mm tt'), 
     'end' = dateFormat(end_date_time, 'mm/dd/yyyy') & timeFormat(end_date_time, 'hh:mm tt'), 
     'allDay' = isAllDayEvent, 
     'eventID' = event_id, 
     'duration' = duration, 
     'note' = note, 
     'location' = location 
    } /> 

    <cfset arrayAppend(thisArrayBecomesJSON, thisEvent) /> 

</cfloop> 

<cfset myJSON = serializeJSON(thisArrayBecomesJSON) /> 

<cfoutput>#myJSON#</cfoutput> 

這是未經測試,但我認爲這應該可以工作 - 可能會有一些語法錯誤。

+0

沒有語法錯誤。但是現在我無法驗證JSON。 – 2012-03-22 16:44:05

+0

你用什麼來驗證JSON?你能發佈一個正在生成的JSON字符串的例子嗎? – 2012-03-22 16:46:41

+0

我使用以下兩個URL來驗證我的JSON: http://jsonlint.com/ http://jsonformatter.curiousconcept.com/ 該項目在我的本地計算機上,JSON非常大。近1000條記錄。無法在此分享。 – 2012-03-22 17:11:26