나는 ColdFusion에서 10 만 ColdFusion에서 9 잘 작동 코드의 버전이 오류 받고 있어요 :ColdFusion 9 JSON 구문 분석 오류가 발생 했습니까?
<cffunction name="getBuildings" access="remote" output="true" returnformat="JSON">
<cfset fnResults = structNew()>
<cfquery name="getBldg" datasource="myData">
SELECT
LTRIM(RTRIM(number)) AS bldgNum,
LTRIM(RTRIM(name)) AS bldgName
FROM Bldg WITH (NOLOCK)
ORDER BY name
</cfquery>
<cfset fnResults.recordcount = getBldg.recordcount>
<cfif getBldg.recordcount EQ 0>
<cfset fnResults.message = "No Buildings found.">
<cfelse>
<cfloop query="getBldg">
<cfset fnRecBldg[currentRow] = StructNew()>
<cfset fnRecBldg[currentRow].bldgName = URLEncodedFormat(getBldg.name)>
<cfset fnRecBldg[currentRow].bldgNumber = getBldg.number>
</cfloop>
<cfset fnResults.data = fnRecBldg>
</cfif>
<cfset fnResults.status = "200">
<cfreturn fnResults>
</cffunction>
: 여기
SyntaxError: JSON.parse: expected ',' or '}' after property value in object at line 1 column 13714 of the JSON data
내 데이터를 JSON으로 변환됩니다 내 cffunction의입니다 여기 내 JQUERY입니다 :
:
여기
function getBldg(){
var dist = $('.chBldg');
$.ajax({
type: 'POST',
url: 'Application.cfc?method=getBuildings',
data: {},
dataType: 'json'
}).done(function(obj){
var numRecs = obj.RECORDCOUNT;
if(obj.STATUS == 200){
if(numRecs == 0){
dist.find("option:gt(0)").remove();
}else{
dist.find("option:gt(0)").remove();
for(var i=0; i < numRecs; i++){
var jsRec = obj.DATA[i];
dist.append($("<option />").val(jsRec.BLDGNUMBER).text(decodeURIComponent(jsRec.BLDGNAME) +' ('+ jsRec.BLDGNUMBER +')'));
}
}
}else{
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
}
}
는 rerurned 데이터의 작은 예입니다
{"RECORDCOUNT":4,"STATUS":200,"DATA":[
{"BLDGNAME":"Fall%2DCasey","BLDGNUMBER":"0012"},
{"BLDGNAME":"Autmun","BLDGNUMBER":"0022"},
{"BLDGNAME":"Cedar","BLDGNUMBER":0201},
{"BLDGNAME":"Great%20Lake","BLDGNUMBER":1215}]}
이 오류는 ColdFusion 버전 9/10 및 내 JSON 데이터 구성 방법과 관련되어 있어야합니다. 나는 아직도 그 버그를 발견하지 못했다. 누구든지 내 코드 ID가 깨지는 곳을 알고 있으면 알려주세요.
데이터의 더 작은 샘플을 처리 한 다음 오류가 트리거 된 것을 발견 할 때까지 계속 추가합니다. 그러나 내가 추측해야만한다면, 그것은 탈출하지 못한 인물 일 것이라고 확신합니다. 마지막으로, 적어도 2016 년에 CF 2016을 개발 상자에로드하고 코드를 실행합니다. –
오류에서 언급 한 문자 위치 13714 주변의 데이터를보십시오. 아마 당신에게 단서를 줄 것입니다. –
@ Miguel-F 위치 13714에서 문자를 찾았습니다. 여기 값 : BLDGNUMBER : 0000 왜 오류가 발생하는지 잘 모르겠습니다. –