我目前有一个JSON字符串,它是手动构建的,我无法改变。我正在搜索一个函数来转发已发布的特定字段中的无效字符。例如:
{"customer_notes" : "please deliver to 13/a test rd, nsw Australia."}
虽然我可以对特殊字符进行简单的查找和替换,但我希望可能有更简单的方法,如函数或正则表达式模式。
我知道我可以使用serializeJson()
,但据我所知,它需要在整个对象上执行。如果情况并非如此,我希望有人可以纠正我。
答案 0 :(得分:1)
您可以像这样使用stringEscapeUtils
类java:
<cfset jsonStruct = deSerializeJson('{"customer_notes" : "please deliver to 13/a test rd, nsw Australia."}')>
<cfset objEscapeUtils = createObject("java", "org.apache.commons.lang.StringEscapeUtils")>
<!--- Loop over struct and escape each key value --->
<cfloop collection="#jsonStruct#" item="key">
<cfset jsonStruct[key] = objEscapeUtils.escapeJavaScript(jsonStruct[key])>
</cfloop>
<!--- Convert to JSON --->
<cfset jsonData = serializeJson(jsonStruct)>