gpt4 book ai didi

java - 如何转义JSON中的特殊字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:39 26 4
gpt4 key购买 nike

我们有一个表单,其中有一段很长的科学应用程序,其中包含符号 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

我们无法控制科学家写入的表单元素。所以在 Mule 方面,我们如何像 java 具有 URLEncoded 一样自动转义这些字符。非常感谢

最佳答案

在您的情况下,传入的数据看起来格式不正确。它必须在 an encoding supported by the JSON spec 中:UTF-8(默认)、UTF-16 或 UTF-32。所以不确定以下是否适用。尽管如此……

对于大多数应用,我会推荐 JSON to Object mapping ,这将负责转义。否则,您可以调用 Jackson 的(Mule 使用的 JSON 库)String escape method直接。

这是您可以在 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>

关于java - 如何转义JSON中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26776311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com