簡體   English   中英

Gson動態類類型

[英]Gson dynamic class type

我正在嘗試使用gson在Java應用程序中反序列化JSON對象。

但是,我不知道如何動態地應用類類型。

我在String有類名

User user = gson.fromJson(userJSON, User.class);

如何將String myClass為類類型?

Class<?> cls = Class.forName(className);

但是您的className應該是完全合格的-即com.mycompany.MyClass

我相信上一個答案中所建議的完全可以。 只是為了避免所有混亂並使它更加明顯,這是完整的代碼:

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM