シリアライズ
ModelをJSONにシリアライズしたいとき、あると思います。
JsonSerializerOptions
をいじると整形したりnull項目を非表示にしたりできます。
CS
Model model = new Model
{
TemperatureCelsius = 1,
Summary = "No.1",
};
var optionsUTF8 = new JsonSerializerOptions
{
// すべての null 値プロパティを除外
IgnoreNullValues = true,
// 文字コードの設定
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
// 整形出力を行う
WriteIndented = true
};
var serialize = JsonSerializer.Serialize(model, optionsUTF8);
出力結果
{
"TemperatureCelsius": 1,
"Summary": "No.1"
}
おまけ
拡張メソッドにしておくとちょっと便利。
CS
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
public static class JsonUtility
{
// 拡張メソッドにしておくとちょっと便利
public static string ToJson<T>(this T model)
{
var optionsUTF8 = new JsonSerializerOptions
{
// すべての null 値プロパティを除外
IgnoreNullValues = true,
// 文字コードの設定
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
// 整形出力を行う
WriteIndented = true
};
return JsonSerializer.Serialize(model, optionsUTF8);
}
}
呼び出し方
var serialize = model.ToJson();