JavaでJSONArrayをString配列に変換する方法をわかりやすく解説
JSONは、システム間でデータをやり取りする際に広く利用されているデータ交換フォーマットの1つです。軽量であり、特定のプログラミング言語に依存しないという特徴を持っています。
JavaのJSONArrayは、文字列からテキストを解析してリスト(Vector)のようなオブジェクトを生成できるクラスで、java.util.Listインターフェースをサポートしています。本記事では、JSONArrayをString配列(String[])に変換する方法を、サンプルコードと実行結果とともに解説します。
変換の基本手順
JSONArrayをString配列へ変換する際の基本的な流れは以下の通りです。
- JSONArrayオブジェクトを作成し、
put()メソッドで要素を追加する - ループ処理で各要素を
getString()メソッドにより文字列として取得し、List<String>に格納する toArray()メソッドを使って、ListをString配列に変換する
サンプルコード
import org.json.*;
import java.util.*;
public class JsonArraytoStringArrayTest {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.put("INDIA ");
jsonArray.put("AUSTRALIA ");
jsonArray.put("SOUTH AFRICA ");
jsonArray.put("ENGLAND ");
jsonArray.put("NEWZEALAND ");
List<String> list = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
list.add(jsonArray.getString(i));
}
System.out.print("JSONArray: " + jsonArray);
System.out.print("\n");
String[] stringArray = list.toArray(new String[list.size()]);
System.out.print("String Array: ");
for (String str : stringArray) {
System.out.print(str);
}
}
}
実行結果
JSONArray: ["INDIA ","AUSTRALIA ","SOUTH AFRICA ","ENGLAND ","NEWZEALAND "] String Array: INDIA AUSTRALIA SOUTH AFRICA ENGLAND NEWZEALAND
ポイント解説
- getString(int index):JSONArrayから指定したインデックス位置の要素を文字列として取得します。要素が文字列以外の場合は例外がスローされるため注意が必要です。
- toArray(new String[list.size()]):ListをString型の配列に変換します。あらかじめ正しいサイズの配列を渡すことで、不要な配列の再生成を避けられます。
- なお、Java 8以降ではStream APIやラムダ式を活用することで、より簡潔に変換処理を記述することも可能です。
-
Javaで文字配列をリーダー(Reader)に変換する方法を徹底解説
Javaでは、CharArrayReaderクラスを使用することで、文字配列をリーダー(Reader)として扱うことができます。CharArrayReaderはReaderクラスのサブクラスであり、文字入力ストリームとして利用可能な文字バッファを実装しています。このクラスを使うと、メモリ上の文字配列から、開始位置(オフセット)を指定して全てまたは一部の文字を読み取ることができます。ファイルやネットワーク経由ではなく、プログラム内のデータをストリームとして処理したい場合に非常に便利です。CharArrayReaderの主なメソッドclose():ストリームを閉じ、関連するリソースを解放しますma
-
JavaでCLOB型を文字列(String)に変換する方法をわかりやすく解説
CLOB(Character Large Object)は、SQLの組み込みデータ型の一つで、大量のテキストデータを格納するために使用されます。このデータ型を利用すると、最大2,147,483,647文字までのデータを保存することが可能です。 JDBC APIのjava.sql.Clobインターフェースが、このCLOBデータ型を表現します。なお、JDBCにおけるClobオブジェクトはSQLロケーター(locator)を使って実装されているため、実際のデータそのものではなく、SQL CLOBへの論理ポインターを保持している点に注意してください。 MySQLデータベースでは、TINYTEXT、T