【问题标题】:How do I put Serializable Objects in a JSON body? In what format should I store in my database?如何将可序列化对象放入 JSON 正文?我应该以什么格式存储在我的数据库中?
【发布时间】:2013-07-17 01:02:29
【问题描述】:

我正在为 osgi 框架构建日志/日志服务,目的是在系统故障后使用我的日志条目从备份中恢复系统。 但是我遇到了一个问题:为了确保我有足够的数据,能够正确恢复系统,我需要传递使用过的函数调用及其参数。

我将函数名作为字符串传递给我的 journalService,并将参数作为可序列化对象的数组传递。我要求参数是可序列化的,因为我需要将它们保存到外部数据库。

我通过 REST/JSON 框架联系我的数据库,所以我只想将我的日记条目发布到我的数据库中。然而,我的问题是:如何将可序列化对象(args)放入我的 JSON 正文中?我需要以什么格式将它们存储在我的数据库中?

【问题讨论】:

    标签: java json osgi serializable


    【解决方案1】:

    我会将对象序列化为字节数组/流,并对数组/流进行 base64 编码以获得可打印的字符串。

    在数据库级别,您可以将 base64 字符串存储为 CLOB,或者将其解码为字节数组并将其存储为 BLOB。

    【讨论】:

    • 我找到了一个 java 包:org.quickconnect.json,它提供了 JSONOutputStreams 和方法来将 Serializable 完全转换为那个。 (非常适合我的情况)但是我可以将输出流对象直接存储在数据库中吗?
    • 输出流不包含数据。它是一个用于在某处发送字节的对象(例如,发送到字节数组 (ByteArrayOutputStream) 或文件 (FileOutputStream))。您可以将 JSON 写入字节数组,并将此字节数组作为 BLOB 存储在数据库中。
    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2015-10-21
    • 2018-07-04
    • 2013-10-12
    • 2019-01-11
    相关资源
    最近更新 更多