GSONを使ってみたときの備忘録
pom,xmlのdependency
GSONを使うために、まずはdependencyを追加
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
GSONを使って、JSONファイルを読み込む
public List<ItemEntity> readJson() throws JsonSyntaxException, IOException { Gson gson = new Gson(); String str = FileUtils.readFileToString(file, "UTF-8"); ItemEntity[] list = gson.fromJson(, ItemEntity[].class); return new ArrayList<ItemEntity>(Arrays.asList(list)); }
- Note: 配列からListへの変換は
Arrays.asList()
では不十分- 内部は固定長のままのため、
List.add()
するとUnsupportedOperationException
が発生する
- 内部は固定長のままのため、
GSONを使て、JSON形式でファイルに書き込む
public void write(List<ItemEntity> itemList) { String filePath = "xxxx.json"'; File file = new File(filePath); Gson gson = new Gson(); String str = gson.toJson(itemList); FileUtils.write(file, str, "UTF-8", false); }
GSONを使って、JSONをプリティプリントしてみる
Gson#ToJson()
でString型に変換できるけど、デバッグ時には読みにくい。。。
public void write(List<ItemEntity> itemList) { String filePath = "xxxx.json"'; File file = new File(filePath); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String str = gson.toJson(itemList); FileUtils.write(file, str, "UTF-8", false); }