【发布时间】:2016-02-09 11:07:54
【问题描述】:
我将 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 类型。
【问题讨论】:
-
你看过gson库吗? github.com/google/gson
-
据我了解,这实际上并不是询问如何将任意字符串反序列化为字节数组的重复。不过,欢迎您解释为什么您不这么认为!
-
看起来 gson 不会让我反序列化未知类型。所有电话都必须来自
gson.fromJson("1", int.class);。来自 gson 文档:“但是,使用 fromJson(json, Collection.class) 进行反序列化将不起作用,因为 Gson 无法知道如何将输入映射到类型。Gson 要求您在 fromJson 中提供集合类型的通用版本. "