知識庫 / JSON RSS 訂閱

將 BufferedReader 轉換為 JSONObject

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

1. 概述

本快速教程將演示如何使用兩種不同的方法將 BufferedReader 轉換為 JSONObject

2. 依賴

在開始之前,我們需要將 org.json 依賴添加到我們的 pom.xml 中:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20240303</version>
</dependency>

3. JSONTokener

The 最新版本的 org.json 包含一個 JSONTokener 構造函數。它直接接受一個 Reader 作為參數。

因此,讓我們使用該構造函數將一個 BufferedReader 轉換為一個 JSONObject

@Test
public void givenValidJson_whenUsingBufferedReader_thenJSONTokenerConverts() {
    byte[] b = "{ \"name\" : \"John\", \"age\" : 18 }".getBytes(StandardCharsets.UTF_8);
    InputStream is = new ByteArrayInputStream(b);
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    JSONTokener tokener = new JSONTokener(bufferedReader);
    JSONObject json = new JSONObject(tokener);

    assertNotNull(json);
    assertEquals("John", json.get("name"));
    assertEquals(18, json.get("age"));
}

4. 首先轉換為String

現在,讓我們看看如何通過首先將BufferedReader轉換為String來獲取JSONObject的方法。

這種方法可用於在舊版本的org.json中工作時。

@Test
public void givenValidJson_whenUsingString_thenJSONObjectConverts()
  throws IOException {
    // ... retrieve BufferedReader<br />
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        sb.append(line);
    }
    JSONObject json = new JSONObject(sb.toString());

    // ... same checks as before
}

在這裏,我們正在將 BufferedReader轉換為 String,然後使用 JSONObject構造函數將 String轉換為 JSONObject

5. 結論

在本文中,我們看到了兩種將 BufferedReader 轉換為 JSONObject 的方法,並提供了簡單的示例。毫無疑問,最新版本的 org.json 提供了將 BufferedReader 轉換為 JSONObject 的簡潔而清晰的方式,並且代碼行數更少。

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

發佈 評論

Some HTML is okay.