我正在尝试使用JSON
在我的Java应用程序中反序列化gson
个对象
。
但是,我无法想象如何动态应用类类型。
我在String
User user = gson.fromJson(userJSON, User.class);
如何将String myClass
作为班级类型?
答案 0 :(得分:0)
Class<?> cls = Class.forName(className);
但是你的className应该是完全限定的 - 即com.mycompany.MyClass
答案 1 :(得分:0)
我相信上一个答案中的建议完全没问题。为了避免所有混淆并使其变得非常明显,这里是完整的代码:
package com.test;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
public class TestGSON {
public static void main(String[] args) {
Gson gson = new Gson();
try{
Object fromJson = gson.fromJson("{\"name\":\"Dharam\"}", Class.forName("com.test.MyClass"));
if(fromJson instanceof MyClass){
System.out.println(fromJson);
}
} catch (JsonSyntaxException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class MyClass {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "MyClass [name=" + name + "]";
}
}
以上代码的输出:
MyClass [name=Dharam]