2012-03-22 248 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