Regex ColdFusion转义JSON字符串

Regex ColdFusion转义JSON字符串,regex,json,coldfusion,Regex,Json,Coldfusion,我目前有一个JSON字符串,它是手动构造的,我无法更改。我正在搜索一个函数,用于转义发布的特定字段中的无效字符。例如: {“客户注释”:“请交付至澳大利亚新南威尔士州测试路13/a。”} 虽然我可以为特殊字符做一个简单的查找和替换,但我希望有一个更简单的方法,比如函数或正则表达式模式 我知道我可以使用serializeJson(),但据我所知,它需要在整个对象上执行。如果不是这样,我希望有人能纠正我。您可以像这样使用java类: <cfset jsonStruct = deSerializ

我目前有一个JSON字符串,它是手动构造的,我无法更改。我正在搜索一个函数,用于转义发布的特定字段中的无效字符。例如:

{“客户注释”:“请交付至澳大利亚新南威尔士州测试路13/a。”}

虽然我可以为特殊字符做一个简单的查找和替换,但我希望有一个更简单的方法,比如函数或正则表达式模式

我知道我可以使用
serializeJson()
,但据我所知,它需要在整个对象上执行。如果不是这样,我希望有人能纠正我。

您可以像这样使用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)>


是否要替换json字符串中的无效字符?哪些是无效字符?添加输入和预期输出会有所帮助。请输入一些您已经尝试过的代码。如果您拥有的字符串在JSON中包含非法字符,则该字符串不是JSON。为什么这个字符串是“手动构造的”?为什么你不能改变它?如果您正在使用一个应该为您提供JSON的服务,请让该服务的提供者确保字符串是JSON,否则他们的服务无效。注意:您提供的示例是完全有效的JSON。。。如果你发布了一些你所看到的不正确的例子,这会有所帮助。但底线是:不要接受坏的东西,试着去修复。首先确保它是有效的。