Java存储类型信息以及toBytes中的Byte[]数组
我将JSON信息存储在数据库中,我希望在存储之前将所有值转换为字节,但保留类型信息 对于String、Integer和Boolean类型,我想说:Java存储类型信息以及toBytes中的Byte[]数组,java,json,encoding,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中实现这一点的最佳方法是什么 问题包括将包含任
Byte[] bytes = toBytes(myStr);
// Not too sure about this part...
// Want type information to be retrieved somehow.
String s = fromBytes(bytes);
在Java中实现这一点的最佳方法是什么
问题包括将包含任意内容的字符串序列化为字节数组。我的问题涉及如何在没有loisng类型信息的情况下序列化任意JSON类型 一种方法是在字符串末尾附加一个字符,作为类型的“代码” 例如,您可以为
String
添加s
,i
为Integer
,f
为Float
,等等
当您将其作为字符串取消分析时,可以删除并检索最后一个字符,然后相应地将其更改为正确的形式
例如:
// 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
}
一种方法是在字符串末尾附加一个字符,作为类型的“代码”
例如,您可以为String
添加s
,i
为Integer
,f
为Float
,等等
当您将其作为字符串取消分析时,可以删除并检索最后一个字符,然后相应地将其更改为正确的形式
例如:
// 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
}
我认为必须在JSON中添加一个对象字段来标识类型。例如,“type”:“integer”或“type”:“String”等
我看不出其他方法。我认为您必须在JSON中添加一个对象字段来标识类型。例如,“type”:“integer”或“type”:“String”等
我看不出另一种方法。可能的复制品您看过gson库了吗?据我所知,这实际上不是询问如何将任意字符串反序列化为字节数组的重复。不过,欢迎你解释你为什么不这么想!看起来gson不会让我反序列化未知类型。所有调用都需要是fromgson.fromJson(“1”,int.class)代码>。来自gson文档:“但是,使用fromJson(json,Collection.class)进行反序列化将不起作用,因为gson无法知道如何将输入映射到类型。gson要求您在fromJson中提供集合类型的泛型版本。”可能的副本您看过gson库了吗?据我所知,这实际上不是询问如何将任意字符串反序列化为字节数组的重复。不过,欢迎你解释你为什么不这么想!看起来gson不会让我反序列化未知类型。所有调用都需要是fromgson.fromJson(“1”,int.class)代码>。来自gson文档:“但是,使用fromJson(json,Collection.class)反序列化将无法工作,因为gson无法知道如何将输入映射到类型。gson要求您在fromJson中提供集合类型的泛型版本。”@EleazarEnrique,但这是一个容易逆转的操作,您不必在JSON中添加另一个字段。@EleazarEnrique但这是一个容易可逆的操作,您不必在JSON中添加另一个字段。JSON中没有“标记”,只有对象字段。JSON中没有“标记”,只有对象字段。