Java将类型信息与Byte[]数组一起存储,从而生成toBytes。

5 浏览
0 Comments

Java将类型信息与Byte[]数组一起存储,从而生成toBytes。

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

因此,对于字符串、整数和布尔类型,我想能够说:

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

什么是在Java中最好的方法?

这个问题涵盖了将具有任意内容的字符串序列化为字节数组。我的问题涉及如何将任意JSON类型序列化而不丢失类型信息。

admin 更改状态以发布 2023年5月21日
0
0 Comments

我认为你需要在 JSON 中添加一个对象字段来标识类型。例如,"type": "integer" 或 "type": "String" 等。

我没有看到其他的方法。

0
0 Comments

你可以做的一种方法是向字符串末尾添加一个字符,作为类型的“代码”。

例如,您可以添加 s 表示 Stringi 表示 Integerf 表示 Float,以此类推......

当你将它解析成一个 String 时,你可以删除并检索最后一个字符,然后根据需要将其更改为正确的形式。

例如:

// 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
}

0