【发布时间】:2017-05-18 02:47:14
【问题描述】:
我在 CFC 文件中有一个函数,该函数将 JSON 字符串作为参数。然后该函数使用反序列化的数据来执行 UPDATE 查询。在 JSON 字符串中,属性之一具有字符 # 作为名称的一部分。该字符使代码在 ColdFusion 中中断,因为它被解释为变量。有什么方法可以让 ColdFusion “转义”该字符并认为它只是一个字符串?请记住,这是 JSON 字符串的一部分。
下面是我的功能。由于 JSON 字符串中的 # 字符,它不允许我访问 dnisObject。如果我从 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>
【问题讨论】:
-
旁注,请务必
var/local所有函数局部变量,否则在某些情况下,您可能会遇到奇怪(且难以重现)的错误。
标签: json coldfusion