Gson转List详解

一、从JSON转List

Gson是Google推出的一个用于将Java对象转换为JSON格式,或将JSON字符串转换为Java对象的Java libarary。在处理JSON字符串中的List时,我们可以利用Gson将其转换为List对象进行方便的操作。

下面是一个JSON字符串:

{
  "users": [
    {"name": "John", "age": "30", "gender": "male"},
    {"name": "Mary", "age": "25", "gender": "female"},
    {"name": "Tom", "age": "40", "gender": "male"}
  ]
}

我们可以用Gson将此JSON字符串转换为List对象:

Gson gson = new Gson();
Type listType = new TypeToken<List<User>>(){}.getType();
List<User> userList = gson.fromJson(jsonString, listType);

上述代码的含义是:先定义一个Gson对象,然后通过TypeToken获取List<User>类型,接着用Gson将JSON字符串转换为List<User>对象。

二、Gson转List实体类

假设我们有一个实体类User:

public class User {
    private String name;
    private int age;
    private String gender;

    // getter和setter方法
}

我们可以用Gson将JSON字符串转换为List<User>对象:

Gson gson = new Gson();
Type listType = new TypeToken<List<User>>(){}.getType();
List<User> userList = gson.fromJson(jsonString, listType);

上述代码与前面的示例代码类似,只不过TypeToken中的类型改为了List<User>。

三、Gson转List对象

在某些情况下,我们需要将一个对象转换为List对象。假设我们有一个User对象,我们可以通过以下方式将其转换为List<User>对象:

User user = new User("Tom", 30, "male");
List<User> userList = new ArrayList<User>();
userList.add(user);

Gson gson = new Gson();
Type listType = new TypeToken<List<User>>(){}.getType();
String jsonString = gson.toJson(userList, listType);

上述代码的含义是:首先创建一个User对象,并将其添加到List<User> userList中,接着创建一个Gson对象,通过TypeToken获取List<User>类型,最后用Gson将List<User>对象转换为JSON字符串。

四、Gson转List<String>

有时我们需要将一组字符串转换为List<String>对象。下面是一个示例代码:

String jsonString = "[\"apple\", \"banana\", \"orange\"]";
Gson gson = new Gson();
Type listType = new TypeToken<List<String>>(){}.getType();
List<String> fruitList = gson.fromJson(jsonString, listType);

上述代码的含义是:先定义一个含有果实名称的JSON字符串,接着创建Gson对象,通过TypeToken获取List<String>类型,最后通过Gson将JSON字符串转换为List<String>对象。

五、Gson转对象

我们也可以用Gson将JSON字符串转换为对象。假设我们有以下JSON字符串:

{"name": "Tom", "age": "30", "gender": "male"}

我们可以用以下代码将其转换为Java对象:

Gson gson = new Gson();
User user = gson.fromJson(jsonString, User.class);

上述代码的含义是:首先创建一个Gson对象,接着用Gson将JSON字符串转换为User对象。

六、Gson转字符串

我们也可以用Gson将Java对象转换为JSON字符串。下面是一个示例代码:

User user = new User("Tom", 30, "male");
Gson gson = new Gson();
String jsonString = gson.toJson(user);

上述代码的含义是:首先创建一个User对象,接着创建一个Gson对象,最后用Gson将User对象转换为JSON字符串。

七、Gson转Map

有时我们需要将JSON字符串转换为Map对象。假设我们有以下JSON字符串:

{
  "name": "Tom",
  "age": 30,
  "gender": "male"
}

我们可以用以下代码将其转换为Map对象:

Gson gson = new Gson();
Type mapType = new TypeToken<Map<String,Object>>(){}.getType();
Map<String,Object> map = gson.fromJson(jsonString, mapType);

上述代码的含义是:首先创建一个Gson对象,接着通过TypeToken获取Map<String,Object>类型,最后用Gson将JSON字符串转换为Map<String,Object>对象。

八、String转Gson

我们还可以把一个字符串转换为Gson对象。下面是一个示例代码:

private static final String TAG = "MyActivity";
Gson gson = new Gson();
String jsonString = "{\"name\": \"Tom\", \"age\": 30, \"gender\": \"male\"}";
JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class);
Log.i(TAG, "jsonElement:" + jsonElement);

上述代码的含义是:首先创建一个Gson对象,接着创建一个JSON字符串,最后用Gson将JSON字符串转换为JsonElement对象,并输出到Log中。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:12
下一篇 2024-12-12 12:12

相关推荐

  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一个非常有用的函数,在很多的深度学习模型中都会用到。它的主要功能是将TensorFlow中的张量(Tensor)转换为P…

    编程 2025-04-29
  • 如何使用Python将输出值赋值给List

    对标题进行精确、简明的解答:本文将从多个方面详细介绍Python如何将输出的值赋值给List。我们将分步骤进行探讨,以便读者更好地理解。 一、变量类型 在介绍如何将输出的值赋值给L…

    编程 2025-04-28
  • Python List查找用法介绍

    在Python中,list是最常用的数据结构之一。在很多场景中,我们需要对list进行查找、筛选等操作。本文将从多个方面对Python List的查找方法进行详细的阐述,包括基本查…

    编程 2025-04-28
  • Python DataFrame转List用法介绍

    Python中常用的数据结构之一为DataFrame,但有时需要针对特定需求将DataFrame转为List。本文从多个方面针对Python DataFrame转List详细介绍。…

    编程 2025-04-27
  • Python中list和tuple的用法及区别

    Python中list和tuple都是常用的数据结构,在开发中用途广泛。本文将从使用方法、特点、存储方式、可变性以及适用场景等多个方面对这两种数据结构做详细的阐述。 一、list和…

    编程 2025-04-27
  • 使用Flutter开发ToDo List App

    本文将会介绍如何使用Flutter开发一个实用的ToDo List App。ToDo List,即待办事项清单,是一种记录人们未处理工作和待办事项的方式。随着日常生活的快节奏,如此…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25

发表回复

登录后才能评论