我正在使用Google GSON,并且在他们关注的文档中mention:
Object Examples class BagOfPrimitives { private int value1 = 1; private String value2 = "abc"; private transient int value3 = 3; BagOfPrimitives() { // no-args constructor } }
(序列化)
BagOfPrimitives obj = new BagOfPrimitives(); Gson gson = new Gson(); String json = gson.toJson(obj); ==> json is {"value1":1,"value2":"abc"}
请注意,您无法使用循环引用序列化对象,因为这会导致无限递归。
(反序列化)
BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class); ==> obj2 is just like obj
在最底层,他们使用BagOfPrimitives.class
。这到底是做什么的? (我想它可能会返回类,但在这种情况下,我希望代码只是省略'.class')。
答案 0 :(得分:4)
它是类文字 - 它提供对表示特定类的Class
对象的引用。有关详细信息,请参阅section 15.8.2 of the JLS。例如:
String text = "Hello";
Class<?> classFromObject = text.getClass();
Class<?> classFromLiteral = String.class;
System.out.println(classFromObject == classFromLiteral); // true
在反序列化的情况下,告诉反序列化器使用什么类型来尝试反序列化数据。
答案 1 :(得分:0)
您在方法中放置了一个类型,因此您无需强制转换它。 fromJson
方法是通用的,并根据您在那里写的类型解析类型本身...
<T> T fromJson(String json, Class<T> classOfT)