如何在JSON中转义特殊字符

hpandalai:

我们为科学应用程序提供了一个带有较长段落的表格,其中包含诸如符号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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章