System.Text.Jsonでコメント付きJSONをデシリアライズ
System.Text.json issue with comments · Issue #30743 · dotnet/runtime · GitHub
例えば以下のようなコメント付きのJSONがあったとする.
{ //Comment "FirstName": "太郎", /* this is comment */ "LastName": "田中"//コメントだよ! }
これのデシリアライズを試みます.
まず,これに対応するクラスを用意しておきます.
public class SampleData { public string FirstName { get; set; } public string LastName { get; set; } }
そして,以下のようにSystem.Text.Jsonを使ってデシリアライズします.
SampleData sampleData = System.Text.Json.JsonSerializer.Deserialize<SampleData>(jsonString);
例外となります.
コメント付きのJSONをデシリアライズするには以下のように,JsonSerializerOptions
を使ってコメントを無視するように指定します.
JsonSerializerOptions options = new JsonSerializerOptions
{
ReadCommentHandling = JsonCommentHandling.Skip
};
SampleData sampleData = System.Text.Json.JsonSerializer.Deserialize<SampleData>(jsonString, options);
デシリアライズに成功します.以下はデシリアライズ後にFirstName
を出力しています.