有没有办法逃避ColdFusion中的英镑字符(#)?

DoA*_*rNa 4 coldfusion json

我在CFC文件中有一个函数,它接受一个JSON字符串作为参数.然后,该函数使用反序列化的数据来执行UPDATE查询.在JSON字符串中,其中一个属性将该字符#作为名称的一部分.此字符使代码在ColdFusion中中断,因为它被解释为变量.有没有办法让ColdFusion"逃脱"那个角色,并认为它只是一个字符串?请记住,它是JSON字符串的一部分.

以下是我的功能.dnisObject由于#JSON字符串中的字符,它不允许我访问.如果我#从JSON字符串中删除它,它工作正常.这些值必须存储在数据库中#,因此我不能完全删除它们.

<cffunction name="updateDnisHproduct" access="remote">
    <cfargument name = "lid" type = "numeric" required = "yes">
    <cfargument name = "updatedObj" type = "string" required="yes">


    <cfset dnisObject = DESERIALIZEJSON(arguments.updatedObj)/>

    <cfset test =[{"phone":"1001106672","lineType":"Outbound","label1":"Voicemail for line #54940","label4":"test","hcat":"18","freshStart":"0","phoneCode":"","hproduct":"3","checked":false},{"phone":"1001106672","lineType":"Outbound","label1":"Voicemail Line Box #58940","label4":"12","hcat":"54","freshStart":"0","phoneCode":"","hproduct":"12","checked":false}'>

    <cfset dnisObject = DESERIALIZEJSON(test)/>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

Lei*_*igh 9

你平时逃脱英镑标志的方式相同:加倍.从文档:

...要在字符串中包含[井号],请将该字符加倍; 例如,用于##表示单个#字符.

由于输入是一个字符串,只需执行一个Replace()来替换一个带有两个符号的单个符号.