Java将类型信息与Byte[]数组一起存储,从而生成toBytes。
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日
你可以做的一种方法是向字符串末尾添加一个字符,作为类型的“代码”。
例如,您可以添加 s
表示 String
,i
表示 Integer
,f
表示 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 }