C#で改行されたJSONファイルを作成【インデントを整える】

この記事でJSONファイルの作成方法を紹介したのですが、このままだとデータが1行で表示されてしまいます。人間が見るにはちょっとつらいです。

ちょっとだけ手間を加えると改行されたJSONファイルを作成できるので紹介します。

ソースコード

using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;

namespace JSON
{
    class Program
    {
        [System.Runtime.Serialization.DataContract]
        public class MyData
        {
            [System.Runtime.Serialization.DataMember()]
            public string Name { get; set; }

            [System.Runtime.Serialization.DataMember()]
            public int Age { get; set; }

            [System.Runtime.Serialization.DataMember()]
            public string Job { get; set; }
        }

        static void Main(string[] args)
        {

            var data = new MyData
            {
                Name = "太郎",
                Age = 25,
                Job = "エンジニア",
            };

            using (var fs = new FileStream("MyData.json", FileMode.Create))
            using (var writer = JsonReaderWriterFactory.CreateJsonWriter(fs, Encoding.UTF8, true, true, "  "))
            {
                var serializer = new DataContractJsonSerializer(typeof(MyData));
                serializer.WriteObject(writer, data);
            }

            Console.ReadLine();
        }
    }
}

解説

using (var writer = JsonReaderWriterFactory.CreateJsonWriter(fs, Encoding.UTF8, true, true, "  "))

CreateJsonWriterメソッドの引数にindentというのがあります。これをtrueにすることでJSONの各レベルを適切にインデントしてくれます。

コードを実行すると以下の内容のファイルが作成されました。

{
  "Age": 25,
  "Job": "エンジニア",
  "Name": "太郎"
}

素晴らしい。とても見やすくなりました。

こちらの記事ではJSONファイルを読み込む方法を紹介しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA