知識庫 / JSON RSS 訂閱

Gson將字符串轉換為JsonObject

JSON
HongKong
12
09:52 PM · Dec 05 ,2025

1. 概述

在使用Gson庫在Java中處理JSON時,我們有多種將原始JSON轉換為可以更輕鬆地進行操作的其他類或數據結構的選擇。

例如,我們可以將JSON字符串轉換為 Map<String, Object> 或創建自定義類並進行映射。但是,有時能夠將JSON轉換為通用對象會很有幫助。

在本教程中,我們將學習如何使用 Gson 能夠從 String 中提供 JsonObject

2. Maven 依賴

首先,我們需要將 gson 依賴添加到我們的 pom.xml 中:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.11.0</version>
</dependency>

我們可以在 Maven Central 上找到 Gson 的最新版本:https://mvnrepository.com/artifact/com.google.code.gson/gson

3. 使用 JsonParser</h2

我們接下來要研究的一種將 JSON String轉換為 JsonObject的方法是使用兩步過程,它利用了 JsonParser類。

在第一步中,我們需要解析原始的 String

Gson 提供了我們一個名為 JsonParser的解析器,它會將指定的 JSON String解析為 JsonElements的解析樹:

public static JsonElement parseString(String json) throws JsonSyntaxException

一旦我們獲得瞭解析後的 String,並將其存儲在 JsonElement 樹中,我們將會使用 getAsJsonObject() 方法,它將返回所需的結果。

讓我們看看如何獲取最終的 JsonObject

String json = "{ \"name\": \"Baeldung\", \"java\": true }";

JsonObject jsonObject = JsonParser.parseString(json)
    .getAsJsonObject();

assertTrue(jsonObject.isJsonObject());
assertEquals("Baeldung", jsonObject.get("name")
    .getAsString());
assertTrue(jsonObject.get("java")
    .getAsBoolean());

4. 使用 fromJson 方法

在我們的第二種方法中,我們將看到如何創建 Gson 實例並使用 fromJson 方法。此方法將指定的 JSON String 序列化為指定類中的對象:

public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException

讓我們看看如何使用這種方法解析我們的 JSON 字符串,並將 JsonObject 類作為第二個參數傳遞:

String json = "{ \"name\": \"Baeldung\", \"java\": true }";

JsonObject convertedObject = new Gson().fromJson(json, JsonObject.class);

assertTrue(convertedObject.isJsonObject());
assertEquals("Baeldung", convertedObject.get("name")
    .getAsString());
assertTrue(convertedObject.get("java")
    .getAsBoolean());

5. 結論

在本文中,我們學習了兩種使用 Gson 庫從 Java 中的 JSON 格式 String 中獲取 JsonObject 的方法。我們應該選擇最適合我們中間 JSON 操作的方法。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.