java – JSON使用google-gson序列化/反序列化泛型类型

好吧,我必须承认我不擅长Java中的泛型类型

我使用JavaScriptSerializer在C#中编写了一个JSON序列化/反序列化类

    private static JavaScriptSerializer js = new JavaScriptSerializer();

    public static T LoadFromJSONString<T>(string strRequest)
    {
        return js.Deserialize<T>(strRequest);
    }

    public static string DumpToJSONString<T>(T rq)
    {
        return js.Serialize(rq);
    }

它在C#中运行良好.现在我正在尝试转换或至少在Java中编写另一个JSON序列化/反序列化类.我已经尝试过flexjson和google-gson,但我不知道如何指定< T>在Java中.

有人可以帮帮我吗?顺便说一句,我更喜欢google-gson

最佳答案
在Java中,您必须传递实际类型擦除的类,而不仅仅是类型参数,因此数据绑定器知道要使用的类型;像这样的东西:

public static T LoadFromJSONString<T>(string strRequest, Class<T> type)
{
    Gson gson = new Gson();
    return gson.fromJson(strRequest, type);
}

但通常只需要反序列化;在序列化时,您有一个具有库可以使用的类的实例.

顺便说一句,您可能要考虑使用的另一个优秀的Java JSON库是Jackson;但是,对于这个特定的例子,你提到的所有库都应该有效.

转载注明原文:java – JSON使用google-gson序列化/反序列化泛型类型 - 代码日志