將 Java 列表轉換為 Json 數組
一、簡介
在現代軟件開發中,不同系統之間的數據交換是一種普遍的需求。一種流行的數據交換格式是 JSON(JavaScript 對象表示法)。
此外,Java 是一種廣泛使用的編程語言,它提供了有助於處理 JSON 數據的庫和框架。一項常見任務是將 Java List
轉換為 JSON 數組。
在本教程中,我們將探索實現這種轉換的不同方法,為我們提供實際示例和見解。
2.概述
JSON 的主要目的是通過網絡連接序列化和傳輸結構化數據。因為它是一種在服務器和 Web 應用程序之間傳輸數據的便捷格式。
此外,Web 服務和 API 通常依賴 JSON 格式以標準化方式提供公共數據。它的多功能性使其與現代編程語言兼容,允許跨不同平台和技術無縫集成。
在這種情況下,讓我們考慮一個名為“articles”的 Java 列表,其中包含如下元素:
public List<String> list = Arrays.asList("Article 1", "Article 2", "Article 3");
public String expectedJsonArray = "[\"Article 1\",\"Article 2\",\"Article 3\"]";
我們的目標是將這個“文章”列表轉換成一個 JSON 數組。因此,預期輸出應如下所示:
[
"Article 1",
"Article 2",
"Article 3"
]
我們將在以下部分探討三種不同的方法來完成轉換任務。
2.使用Gson轉換
Gson 是Google
開發的一個流行的 Java 庫,用於處理 JSON 數據,因為它提供了一個簡單的 API 來將 Java 對象轉換為 JSON。
首先,我們需要在pom.xml
文件中添加Gson依賴:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
現在,我們將使用 Gson 庫將 Java List 轉換為 JSON 數組。這是一個測試方法:
@Test
public void given_JavaList_whenUsingGsonLibrary_thenOutJsonArray() {
Gson gson = new Gson();
String jsonArray = gson.toJson(list);
Assert.assertEquals(expectedJsonArray, jsonArray);
}
在上面的測試方法中,我們創建了一個 Gson 實例 ( gson
),然後使用toJson()
方法將articles
List
轉換為以字符串表示的 JSON 數組。
最後,我們利用 Assert 類來驗證輸出 jsonArray 和 expectedJsonArray 的相等性。這確保 Java List
到 JSON 數組的轉換已正確執行並與預期結果匹配。
3. 使用 Jackson 進行轉換
如果我們正在尋求使用強大而靈活的 API,Jackson 簡化了將 Java 對象轉換為 JSON 的任務,反之亦然。
要使用 Jackson,我們首先要將以下依賴項添加到pom.xml
文件中:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.15.2</version>
</dependency>
**添加所需的依賴項後,我們將使用 Jackson 的ObjectMapper
類將 Java List
轉換為 JSON 數組,如下所示:
**
@Test
public void given_JavaList_whenUsingJacksonLibrary_thenOutJsonArray() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String jsonArray = objectMapper.writeValueAsString(list);
Assert.assertEquals(expectedJsonArray, jsonArray);
}
在提供的代碼片段中,我們實例化ObjectMapper
類並使用其writeValueAsString()
方法。此方法允許我們將articles
List
轉換為 JSON 數組,然後將其表示為字符串。
4. 使用org.json
轉換
除了 Gson 和 Jackson 等外部庫外,Java 還提供了一個名為[org.json](https://mvnrepository.com/artifact/org.json/json)
的內置庫,用於 JSON 處理。要使用 org.json 將 Java List
轉換為 JSON 數組,我們可以使用JSONArray
類來完成此任務。這是一個例子:
@Test
public void given_JavaList_whenOrgJsonLibrary_thenOutJsonAray() {
JSONArray jsonArray = new JSONArray(list);
Assert.assertEquals(expectedJsonArray, jsonArray.toString());
}
在上面的代碼片段中,我們創建了JSONArray
類的實例,將articles List
作為參數傳遞。 JSONArray 類提供了一個toString()
方法來獲取 JSON 數組作為字符串表示形式。
5.結論
在本文中,我們討論了將 Java List 轉換為 JSON 數組作為現代軟件開發中的常見任務。我們探索了三種不同的方法,使用流行的庫(如 Gson、Jackson 和 org.json)來完成這項任務。
與往常一樣,代碼示例可在GitHub上獲得。