using System; using System.Data; using System.Text.Json; using System.Text.Json.Serialization; namespace SudokuSolver; class SerializedOuterObject { [JsonPropertyName("newboard")] public SerializedNewBoard NewBoard { get; set; } public SerializedOuterObject() { this.NewBoard = new SerializedNewBoard(); } } class SerializedNewBoard { [JsonPropertyName("grids")] public List Grid { get; set; } public SerializedNewBoard() { this.Grid = new List(); } } class SerializedGrid { [JsonPropertyName("value")] public List> Value { get; set; } public SerializedGrid() { this.Value = new List>(); } } public class RawSudokuGrid { private readonly List> grid; public List> Grid { get { return grid; } } public RawSudokuGrid(List> grid) { this.grid = grid; } public override string ToString() { string ret = ""; foreach (List row in grid) { foreach (var item in row) { ret += $"{item} "; } ret += "\n"; } return ret; } public static RawSudokuGrid LoadFile(string filename) { using FileStream stream = File.OpenRead(filename); SerializedOuterObject ser = JsonSerializer.Deserialize(stream)!; return new RawSudokuGrid(ser.NewBoard.Grid[0].Value); } }