2012-03-22 3 views
0

특수 문자가 포함되어 있습니다. 하지만 특수 문자의 경우 잘못된 형식의 JSON으로 인해 오류가 발생합니다. 그런 경우 어떻게해야합니까?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

코드를 게시해야합니다. –

+0

"serailizeJSON()"함수를 사용하고 있습니까? 아니면 CFC의 귀환 형식에 의존하고 있습니까? JSON은 어떻게 생성됩니까? –

+1

@All above 답변 해 주셔서 감사합니다. 게시물을 편집하고 코드를 추가했습니다. 나는 실수를하고 있다는 것을 알고있다. 이 일을 제대로 수행하는 방법을 알려주십시오. –

답변

11

오히려 손으로 JSON을 작성하는 것보다, 당신은 구조체의 배열을 생성하고 유효한 JSON 문자열로 변환 serializeJSON()을 사용해야합니다

<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을 검증 할 수 없습니다. –

+0

JSON을 검증하기 위해 당신은 무엇을 사용하고 있습니까? 생성되는 JSON 문자열의 예를 게시 할 수 있습니까? –

+0

다음 두 URL을 사용하여 JSON의 유효성을 검사합니다. http://jsonlint.com/ http://jsonformatter.curiousconcept.com/ 프로젝트가 로컬 컴퓨터에 있고 JSON이 매우 큽니다. 거의 1000 개의 레코드. 여기에서 공유 할 수 없습니다. –

관련 문제