C#でJSONファイルを作成

C#でJSONファイルを作成する方法を紹介します。

準備

プロジェクトを右クリックして「追加」-「参照」を選択します。

アセンブリを選択し、右上の検索にSystem.Runtime.Serializationと入力します。

System.Runtime.Serializationにチェックを入れてOKボタンを押します。

これで準備は完了です。

ソースコード

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

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))
            {
                var serializer = new DataContractJsonSerializer(typeof(MyData));
                serializer.WriteObject(fs, data);
            }
        }
    }
}

解説

using System.Runtime.Serialization.Json;

これが、参照追加したアセンブリです。usingを追加することでシリアライズのクラスを参照できます。シリアライズとは、C#で扱うデータを一つの文字列で表現することをいいます。

シリアライズするクラスに以下の記述を追加します。

[System.Runtime.Serialization.DataContract]

クラスのプロパティには以下の記述を追加します。

[System.Runtime.Serialization.DataMember()]

以下のコードでシリアライザのインスタンスを生成します。

var serializer = new DataContractJsonSerializer(typeof(MyData));

以下のコードでMyData.jsonを作成します。

serializer.WriteObject(fs, data);

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

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

とても簡単に作成することができました。

作成はできましたが、データが一行で表示されるのは見づらいですね。

以下の記事でデータを改行して作成する方法を紹介しています。

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

コメントを残す

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

CAPTCHA