【发布时间】:2017-12-01 10:45:35
【问题描述】:
关注主题AngularJS - Special Characters in JSON and Coldfusion Request 我得出的结论是问题不是来自 ANGULARJS 或我的 JSON 语法。这肯定是 Coldfusion 的问题。
提醒一下,我正在尝试使用 JSON 字符串在带有 ColdFusion 的数据库中执行 INSERT。我正在使用组件中定义的函数来执行此操作。
我的函数将字符串作为参数。
这里是使用的字符串示例:
jsStruct={"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"tes.test@test.test","COMPANY":"Test & Comp"}
我的字符串是正确的,JSON 的结构没问题。
在我的 Coldfusion 组件“component.cfc”中:
<cffunction name="myfunction" access="remote" returnformat="JSON" output="no">
<cfargument name="jsStruct" type="string" required="true">
<cfset var cfStruct=DeserializeJSON(jsStruct)>
..................
</cffunction>
我在使用字符串时在服务器上收到此错误,因为在我的字符串中有特殊字符。例如 "COMPANY":"Test & Comp":
JSON parsing failure: Unexpected end of JSON string
The error occurred in ../contacts.cfc: line 267
265 : <cfargument name="jsStruct" type="string" required="true">
266 :
267 : <cfset var cfStruct=DeserializeJSON(jsStruct)>
您能否帮我解决这个问题并防止(转义)ColdFusion 和 Oracle 使用的特殊字符为 &、#、'、" 等?
【问题讨论】:
-
另一个主题解决了服务器端的问题。我只得出结论,AngularJs 和 JSON 语法都不是问题。现在我想用 Coldfusion 解决这个问题。
-
您使用的是哪个版本的 ColdFusion?
-
jsStruct={"LASTNAME":"Nämé",... 不是 JSON“字符串”,而是声明为 CF 结构。一个字符串将在我们的双引号中,如下所示: jsStruct='{"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"tes.test @test.test","COMPANY":"Test & Comp"}'。您收到的错误是因为您在对象上使用 DeserializeJSON(),而不是 JSON 字符串/结构。
-
您使用的是哪个版本的 ColdFusion?您的示例似乎有效trycf.com/gist/604b27bea4ea3ce5cfab67cf49845bf8/…
标签: coldfusion escaping special-characters