java - resultSet 字符串中的控制字符

标签 java json linux postgresql jdbi

我们在 Postgres 的文本列中有一个正确且干净的 json 字符串, 该字符串是一种很少更改的配置数据。

json 字符串是通过 jdbi 查询从在 wildfly 上的 Web 应用程序中运行的 java 代码中获取的。

仅在 linux 系统上 我们在从结果集(使用 getString("param_value"))读取字符串时遇到控制字符 (?) 的存在。 Here从 resultSet 读取后保存的 json 文本。

有什么建议吗?

最佳答案

我不知道为什么会发生这种情况,但我已经在单元测试中测试了代码,并在应用程序服务器环境(windows ok,linux ko)中获得了相同的结果。此外,升级 postgres jdbc 驱动程序和 jdbi 驱动程序后没有任何变化。

作为变通方法以避免在解析 json 时出现问题,执行控制字符的字符串替换:

String jsonString = resultSet.getString("param_value")
                      .replaceAll("[\\x00-\\x1F\‌​\x7F\\x0A\\xfffd\\x2‌​0a]","");

控制字符序列最初取自this post ,然后根据json解析异常信息进行扩展。

关于java - resultSet 字符串中的控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42072361/

相关文章:

java - 将 jar 文件中的类从 url 加载到内存,然后从所有类中运行主类

javascript - 如何以 Angular 方式从 JSON 访问所有数组值

java - 多对多、Hibernate 问题、AssociationOverrides

java - 在android中的自定义数组适配器中获取过滤器选项?

java - Icefaces 2 插件问题

python - JSON - 使用 numpy 数组条目序列化 pandas 数据框

javascript - 在 JSON.stringify() 的输出中隐藏某些值

linux - 是否有用于在 Linux 上搜索 msword 文档文件的模块?

linux - 通过在 bash 中列出目录来构造 $PATH

python - 在 Linux 中用信号量阻塞 cpu 可能吗? (Python)