我正在数据库中存储 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/