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/zh-tw/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

發表回復

登錄後才能評論