gpt4 book ai didi

java - 如果将特定类型的对象序列化为 JSON 作为对象,如何从 Java 中的 JSON 反序列化该对象?

转载 作者:行者123 更新时间:2023-12-02 01:45:55 31 4
gpt4 key购买 nike

我是 Java 新手!

我的目标:我有一个对象集合,它允许我通过某个键(如 Map)保存任何类型的对象(将它们放入其中并从中获取)。我可以向其中添加任何类型的对象(例如我可以添加 MyClass 的对象)。然后我使用 GSON 将此对象序列化为 JSON 格式的单独字符串(例如,然后我可以将此字符串序列化为单独的文件)。当我想取回某个对象时,我通过键从集合中请求它,集合将相应的字符串反序列化为对象对象并将其返回给我。然后我将其转换为 MyClass 以便能够使用该对象。

下面的代码跳过对集合的处理:

    Gson gson = new Gson();
Object myClass = new MyClass(); //imitation of putting MyClass object to Collection
String json = gson.toJson(myClass); //serializing to JSON
Object myClass1 = gson.fromJson(json, Object.class); //imitation of deserializing and getting object from collection
Main.MyClass myClass2 = (Main.MyClass) myClass1;

此代码的最后一个字符串抛出 java.lang.ClassCastException,因为“gson.fromJson(json, Object.class);”返回“com.google.gson.internal.LinkedTreeMap”类型的对象

我怎样才能实现我的目标???

最佳答案

这可能是因为当您使用 gson.fromJson(json, Object.class) 时,你将它转换到一个对象而不是你的 MyClass,也许如果你使用 gson.fromJson(json, MyClass.class)然后对其进行强制转换,它将返回正确的值。否则他们将制作一个简单的对象类。

关于java - 如果将特定类型的对象序列化为 JSON 作为对象,如何从 Java 中的 JSON 反序列化该对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669517/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com