如何在JSON中转义特殊字符
我们为科学应用程序提供了一个带有较长段落的表格,其中包含诸如符号beta(ß-arrestin)等字符。我们在Mule上运行一个JSON服务,该服务获取数据并持久保存到oracle数据库中。这个带有长段的特殊元素给我RAML
/ JSON错误。下面是错误
com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in string value
科学家写下的形式元素我们无法控制。因此,在M子方面,我们如何像Java具有URLEncoded一样自动地转义这些字符。非常感谢
回答:
在您的情况下,看来输入数据格式不正确。它必须采用JSON规范支持的编码:UTF-8(默认),UTF-16或UTF-32。因此,不确定以下内容是否适用。不过…
对于大多数应用程序,我建议使用JSON到Object的映射,这将避免转义。否则,您可以直接调用Jackson的(由Mule使用的JSON库)字符串转义方法。
这是您可以在MEL中使用的示例。String.valueOf
是必要的,因为quoteAsString
返回char[]
:
<configuration> <expression-language>
<import class="org.codehaus.jackson.io.JsonStringEncoder" />
<global-functions>
def quoteJSONString(s) {
String.valueOf(JsonStringEncoder.getInstance().quoteAsString(s))
}
</global-functions>
</expression-language>
</configuration>
以上是 如何在JSON中转义特殊字符 的全部内容, 来源链接: utcz.com/qa/431903.html