C# JSON
Newtonsoft.Jsonが主流であったが,現在はSystem.Text.Jsonが主流な模様
System.Text.Json
対応クラス定義
JsonPropertyNameでプロパティ名を指定publicフィールドのみ?- クラスの入れ子も可能
public class SampleData {
[JsonPropertyName("ID")] public int ID { get; set; }
[JsonPropertyName("Name")] public string Name { get; set; }
public SampleData(int id, string name) {
ID = id;
Name = name;
}
}
シリアライズ
using System.Text.Json;
using System.Text.Json.Serialization;
SampleData data = new SampleData(100, "Name Sample");
JsonSerializerOptions option = new JsonSerializerOptions() {
// 日本語がUnicode表記となるので全て許容
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
// 整形されたJSONを出力(インデント有無)
WriteIndented = true
};
string json = JsonSerializer.Serialize(data, option);
デシリアライズ
using System.Text.Json;
using System.Text.Json.Serialization;
string json = ~~~~~~~;
SampleData? data = JsonSerializer.Deserialize<Settings>(json);
if(data == null){
return;
}
Reference
- C# を使用して JSON をシリアル化および逆シリアル化する方法 - .NET | Microsoft Learn
- JsonSerializer クラス (System.Text.Json) | Microsoft Learn
- JsonSerializerOptions クラス (System.Text.Json) | Microsoft Learn
Article
最終更新日:
August 14, 2023
作成日: August 14, 2023
作成日: August 14, 2023