json获取泛型类型

admin 2024-08-16 16:30:45 编程 来源:ZONE.CI 全球网 0 阅读模式

JSON是一种轻量级的数据交换格式,它可以描述复杂的结构数据。在Java中,我们可以使用Gson库来将JSON数据转换成Java对象,但是当我们需要将JSON数据转换成特定的泛型类型时,就需要一些特殊的处理了。

public static <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
    return (T) fromJson(json, (Type) classOfT);
}

public static <T> T fromJson(String json, Type typeOfT) throws JsonIOException, JsonSyntaxException {
    if (json == null) {
        return null;
    }
    StringReader reader = new StringReader(json);
    T target = (T) fromJson(reader, typeOfT);
    if (target instanceof Closeable) {
        try {
            ((Closeable) target).close();
        } catch (IOException ignored) {
        }
    }
    return target;
} 

在上面的代码中,我们可以看到fromjson方法可以接收一个Type类型的参数,这个参数可以表示任何特定的泛型类型。

下面是一个使用Gson转换泛型类型的例子:

String json = "[{ \"name\": \"Alice\", \"age\": 20 },{ \"name\": \"Bob\", \"age\": 25 }]";

Type listOfPersonsType = new TypeToken<List<Person>>() {}.getType();

List<Person> persons = gson.fromJson(json, listOfPersonsType); 

在上面的例子中,我们首先定义了一个TypeToken类型的变量listOfPersonsType,它可以表示一个List类型,这个List的元素是Person类型。

然后我们调用gson的fromJson方法来将JSON数据转换成List类型的对象,同时使用listOfPersonsType参数来告诉Gson我们需要的是一个List<Person>类型的对象。

使用Gson和TypeToken可以让我们在处理泛型类型时更加方便。

TypeScript学习笔记 编程

TypeScript学习笔记

TypeScript学习笔记[TOC]TypeScript概述TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型
高德地图JSAPI学习笔记 编程

高德地图JSAPI学习笔记

[toc]概述地图 JS API 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎, 以 WebGL 为主要绘图手段,本着“更轻、更快、更易用”的服
golangTCPpush 编程

golangTCPpush

在当今互联网时代,即时通讯成为了人们生活中不可或缺的一部分。而实现即时通讯的关键技术之一就是TCP Push。作为一名专业的golang开发者,我们不仅需要掌握
nodegolang性能对比 编程

nodegolang性能对比

在当前的编程世界中,Node.js和Golang是两种备受瞩目的技术。它们都拥有出色的性能和能力,但在某些方面却存在差异。本文将对Node.js和Golang进
评论:0   参与:  25