Java 将类型信息与来自 toBytes 的 Byte[] 数组一起存储

标签 java json encoding

我正在数据库中存储 JSON 信息,并且我想在存储之前将所有值转换为字节,但保留类型信息。

因此,对于 String、Integer 和 Boolean 类型,我希望能够说:

Byte[] bytes = toBytes(myStr);

// Not too sure about this part... 
// Want type information to be retrieved somehow.
String s = fromBytes(bytes);

在 Java 中执行此操作的最佳方法是什么?

This问题涉及将具有任意内容的字符串序列化为字节数组。我的问题包括如何在不丢失类型信息的情况下序列化任意 JSON 类型。

最佳答案

实现此目的的一种方法是将一个字符附加到字符串末尾,作为类型的“代码”。

例如,您可以为 String 添加 s、为 Integer 添加 i、为 Float 添加 f 等等...

当您将其解析为字符串时,您可以删除并检索最后一个字符,然后相应地将其更改为正确的形式。

例如:

// encoding
Byte[] bytes = toBytes(myStr + "s");

// decoding
String s = fromBytes(bytes);
String type = s.substring(s.length()-2);
s = s.substring(0, s.length()-1);
switch(s) {
    case "s":
        // leave it as is - already a string
        break;
    case "i":
        // convert it to integer
        // ... and so on
}

关于Java 将类型信息与来自 toBytes 的 Byte[] 数组一起存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598366/

相关文章:

python - 统一码解密

html - HTML 中的斜引号(« 和 »)

javascript - 如何将多种语言设置放在一个 .clang 格式的文件中

java - 带有空白字符串的Jackson com.fasterxml.jackson.databind.exc.MismatchedInputException

javascript - 如何仅获取一次变量中的对象总数?

javascript - 将数组合并到对象以及将对象合并到数组

java - Hibernate 和数据插入数据库失败

java - 我怎样才能通过半径与另一个坐标点和距离以公里为单位的坐标点?

java - 如何制作包含文件目录的字符串数组?

node.js - Node 请求 ISO-8859-1 从 Node 4 开始不工作