BufferedReaderをJSONObjectに変換する
1. 概要
このクイックチュートリアルでは、2つの異なるアプローチを使用してBufferedReaderをJSONObjectに変換する方法を示します。
2. 依存
開始する前に、org.json依存関係をpom.xmlに追加する必要があります。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>
3. JSONTokener
The
それでは、それを使用して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. 最初に文字列に変換します
それでは、最初に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を文字列に変換してから、JSONObjectコンストラクターを使用して文字列をJSONObjectに変換しています。
5. 結論
この記事では、簡単な例を使用して、BufferedReaderをJSONObjectに変換する2つの異なる方法を見てきました。 間違いなく、最新バージョンの org.json は、BufferedReaderをより少ないコード行でJSONObjectに変換するためのすっきりとしたクリーンな方法を提供します。
いつものように、例の完全なソースコードは、GitHubでから入手できます。