我有一些數據必須在Ajax調用後返回。在我的.cfc
頁面上,我擁有轉換數據的邏輯。每列都用製表符分隔,每行用CRLR分隔。我的cffunction
returnformat設置爲JSON
。在我返回數據後,我使用JavaScript以所需的格式分隔列和行。在我這樣做的時候,我看到很少有博客在討論ColdFusion 9中的JSON
的所有問題。在我的開發站點上,我使用ColdFusion 10,並且我沒有注意到我的數據有任何問題。但在現場我有ColdFusion 9,我想知道這是否會導致一些問題。在我的數據中,我有像地址這樣的字段,這個字段允許所有類型的字符。如果你的數據是這樣的,例如2131231D
,如果字符串和整數的組合結束爲D
,那麼在coldfusion 9中返回類型JSON會有問題.JSON不會返回相同的數據。所以我的問題是我在這種情況下應該做什麼?有沒有解決這個問題? JSON是否可靠並推薦在ColdFusion 9中使用?我也在尋找一些工具,將我的數據轉換.cfc頁面,我可以避免cffunction returnformat='JSON'
。這裏是我的代碼:ColdFusion 9/10返回fromat JSON?
<cfcomponent>
<cffunction name="getData" access="remote" output="true" returnformat="JSON">
<cfset fncResults = StructNew()>
<cfif myFile = true>
<cfoutput query="myData">
//Here I organize my data
</cfoutput>
<cfset getList = arrayToList(buffer,crlf)/>
<cfset fncResults.status = "200">
<cfset fncResults.fileData = #getList#>
<cfelse>
<cfset fncResults.status = "400">
<cfset fncResults.message = "The file was not properly uploaded.">
</cfif>
<cfreturn fncResults>
</cffunction>
</cfcomponent>
這裏是我的JavaScript:
function getFile(){
$.ajax({
type: 'POST',
url: 'Components/test.cfc?method=getData',
data: new FormData($('#myForm')[0]),
cache: false,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
return obj.FILEDATA;
}else{
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
}
我還沒有遇到你描述的問題,但如果你這樣做,你可以隨時切換到使用json cfc。爲什麼你在開發中使用CF10,如果你有生產中的CF9? –
@KevinB你有沒有json cfc的例子?這是系統中的很多問題,當我們嘗試將活動網站更新到10時,我們遇到了一些錯誤。 –
對於我來說,看起來很奇怪的是,您從功能返回製表符分隔的數據....我不知道Coldfusion將能夠自動將其轉換爲有用的json。除非把它變成一個字符串,在這種情況下,你可能不會有太多擔心。 –