この記事で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ファイルを読み込む方法を紹介しています。