【C#】JSON文字列を見やすくインデントする方法
スポンサーリンク

はじめに

本記事では、JSON文字列を見やすくインデントするツールの紹介と、メインコードを説明を行います。

JSONとは

JSONとは、JavaScript Object Notationの略で、データを表現するための軽量なフォーマットです。

JSONは、オブジェクトや配列などの構造を持ち、キーと値のペアでデータを表現します。

JSONは、WebサービスやAPIなどでよく使われるデータ交換フォーマットです。

JSONのインデントとは

JSONのインデントとは、JSON文字列の可読性を高めるために、スペースやタブなどで階層構造を表現することです。

JSONのインデントは、人間がJSON文字列を見やすくするためのもので、コンピューターにとっては必要ありません。

しかし、JSONのインデントは、デバッグやテストなどでJSON文字列を確認する際に便利です。

ツールの紹介

コード

ソースコードは、以下のリンクからダウンロードできます。

コードのみの提供ですので動作させたい方は、開発環境が必要です。

開発環境は、Visual Studio 2022 を使用しています。

全コード

ツールの機能
  • JSON文字列をテキストボックスに入力すると、見やすくインデントしたJSON文字列がテキストボックスに出力されます。
  • JSONファイルをウインドウにドラッグ&ドロップすると、見やすくインデントしたJSONファイルで上書きします。(ファイルは上書きされるので注意!!

ツールの画面

メインコードの説明

C#でJSON文字列をインデントする方法はいくつかありますが、ここでは、System.Text.Jsonという名前空間に含まれるJsonSerializerというクラスを使う方法を紹介します。

JsonSerializerは、C#のオブジェクトとJSON文字列の相互変換を行うためのクラスです。

JsonSerializerには、WriteIndentedというプロパティがあり、これをtrueにすると、JSON文字列をインデント付きで出力することができます。

/// <summary>
/// JSON文字列を見やすくインデントします。
/// </summary>
/// <param name="intput">整形前のJSON文字列</param>
/// <returns>整形後のJSON文字列</returns>
private static string IndentJson(string inputJson)
{
    // 入力チェック
    if (string.IsNullOrWhiteSpace(inputJson)) { return string.Empty; }

    // JSON文字列をオブジェクトに変換
    var obj = JsonSerializer.Deserialize<object>(inputJson);

    // インデントのオプションを設定
    var options = new JsonSerializerOptions
    {
        WriteIndented = true
    };

    // オブジェクトをインデント付きのJSON文字列に変換
    string indentedJson = JsonSerializer.Serialize(obj, options);
    return indentedJson;
}

上記関数の引数「input」に以下のJSON文字列を入力すると、

{"name":"Alice","age":20,"hobbies":["reading","cooking","gaming"]}

以下のJSONが出力されます。

{
  "name": "Alice",
  "age": 20,
  "hobbies": [
    "reading",
    "cooking",
    "gaming"
  ]
}

まとめ

以上が、C#でJSON文字列を見やすくインデントする方法についての紹介でした。

JsonSerializerを使うと、簡単にJSON文字列をインデント付きで出力することができます。

ぜひ、このコードを改造して便利な自分用のツールを作成してみてください。

スポンサーリンク
おすすめの記事