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":"太郎"}
とても簡単に作成することができました。
作成はできましたが、データが一行で表示されるのは見づらいですね。
以下の記事でデータを改行して作成する方法を紹介しています。