くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

GoogleのJSONライブラリ「GSON」を使ってみた

GSONを使ってみたときの備忘録

pom,xmldependency

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);
}

参考にしたサイト様