環境
Windows10 pro 64bit
Visual Studio 2019
追加が必要な参照
- System.Text.Json
- System.Memory
構造体の例
using System.Text.Json.Serialization;
struct JsonStruct
{
[JsonPropertyName("Flag")]
public bool Flag { get; set; }
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonIgnore] // 無視する場合
public string Test { get; set; }
}
クラスの例
using System.Text.Json.Serialization;
class JsonClass
{
[JsonPropertyName("Flag")]
public bool Flag { get; set; }
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonIgnore] // 無視する場合
public string Test { get; set; }
public JsonClass() { } // クラスの場合デフォルトコンストラクタが必要
}
シリアライズ
using System.Text.Json;
JsonStruct js = new JsonStruct();
JsonSerializerOptions options = new JsonSerializerOptions()
{
// 出力する際の設定など
WriteIndented = false,
IgnoreReadOnlyProperties = true,
IgnoreNullValues = false,
};
string json_text = JsonSerializer.Serialize<JsonStruct>(js, options);
デシリアライズ
using System.Text.Json;
JsonStruct js = JsonSerializer.Deserialize<JsonStruct>(json_text);