Coldfusion JSON包含特殊字符

Coldfusion JSON包含特殊字符,coldfusion,fullcalendar,coldfusion-9,Coldfusion,Fullcalendar,Coldfusion 9,我的JSON包含特殊字符,如:新行、双引号等 我正在使用Coldfusion服务器端脚本创建JSON。但在特殊字符的情况下,由于JSON格式错误,我得到了错误。在这种情况下我该怎么办 <cfoutput> [ <cfset loopIndex=0> <cfloop query="qEvents"> <cfif loopIndex NEQ 0>,</cfif> <cfif is_a

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

[
,
{
“头衔”:“头衔”,
“开始”:“#日期格式(开始日期时间,'mm/dd/yyyy')#时间格式(开始日期时间,'hh:mm tt')#”,
“结束”:“#日期格式(结束日期时间,'mm/dd/yyyy')#时间格式(结束日期时间,'hh:mm tt')#”,
“全天”:“全天活动”,
“事件id”:“事件id”,
“持续时间”:“持续时间”,
“注”:“注”,
“位置”:“位置”
}
]

与手工编写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>

#myJSON#

这是未经测试的,但我认为它应该可以正常工作-可能存在一些语法错误。

您使用的是“serailizeJSON()”函数吗?或者您是否依赖CFC的返回格式?JSON是如何生成Adil的?@以上感谢您的回复。我已经编辑了这篇文章并添加了代码。我知道我犯了一些错误。请让我知道这样做的正确方法是什么?没有语法错误。但是现在我无法验证JSON。您使用什么来验证JSON?你能给出一个生成JSON字符串的例子吗?我使用以下两个URL来验证我的JSON:项目在我的本地机器上,JSON非常大。将近1000张唱片。无法在此处共享。如果使用jQuery,则可以使用
jQuery.parseJSON(jsonString)
解析JSON字符串。如果没有,您可以使用
JSON.parse(jsonString)
,但我不确定它是否跨浏览器兼容。JSON中的日期定义不明确。因此,您可能需要根据消费者的期望设置日期格式。