using System.Collections.Generic;
using System.Text.Json.Serialization;
public static void Main()
""name"": ""General Info"",
""permissions"": [""financialReporting""]
var menu = new Menu(json);
Console.WriteLine("Deserialization success");
Console.WriteLine($"Error: {ex.Message}");
var options = new JsonSerializerOptions
new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
var items = JsonSerializer.Deserialize<List<MenuItem>>(json, options);
MenuItems = items.AsReadOnly();
public IReadOnlyList<MenuItem> MenuItems { get; }
IReadOnlyList<Permission> permissions
this.Permissions = permissions ?? new List<Permission>().AsReadOnly();
public string Name { get; }
public string Url { get; }
public IReadOnlyList<Permission> Permissions { get; }