创建3个列表 调用tojson()之后

问题描述 投票:0回答:1

我们创建了一个新类,它的构造函数设置一个电子邮件字符串和一个由3个对象组成的List,默认情况下,每列包含一个空的List<task>

[我们尝试使用功能toJson()将开发板保存到.json文件中,但是.json文件仅包含电子邮件字符串,我们需要.json文件也包含电子邮件和List<column>

class Board : DalObject<Board>
{
    private readonly log4net.ILog log = log4net.LogManager.GetLogger(
          System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    private string email;
    private List<Column> columns;
    public Board() { }
    public Board(string email, List<Column> columns)
    {
        this.Email = email;
        this.Columns = columns;
    }
    public string Email { get => email; set => email = value; }
    internal List<Column> Columns { get => columns; set => columns = value; }


    public string ToJson()
    {
        var json = new JsonSerializerOptions
        {
            WriteIndented = true
        };
        log.Info("Board of user " + this.Email + " saved");
        return JsonSerializer.Serialize(this, json);
    }
    public void Save()
    {
        base.controller.WriteBoard(this.Email, ToJson());
    }
}

class Column : DalObject<Column>
{
    private int columnOrdinal;
    private string columnName;
    private int limit;
    private List<Task> tasks;
    public Column() { }
    public Column(int columnOrdinal, string columnName, int limit, List<Task> tasks)
    {
        this.ColumnOrdinal = columnOrdinal;
        this.ColumnName = columnName;
        this.Limit = limit;
        this.Tasks = tasks;
    }

    public int ColumnOrdinal { get => columnOrdinal; set => columnOrdinal = value; }
    public string ColumnName { get => columnName; set => columnName = value; }
    public int Limit { get => limit; set => limit = value; }
    internal List<Task> Tasks { get => tasks; set => tasks = value; }
}

class Task : DalObject<Task>
{
    private int taskId;
    private string title;
    private string description;
    private DateTime creationDate;
    private DateTime dueDate;

    public Task() { }

    public Task(int taskId, string title, string description, DateTime dueDate, DateTime creationDate)
    {
        this.TaskId = taskId;
        this.Title = title;
        this.Description = description;
        this.CreationDate = creationDate;
        this.DueDate = dueDate;
    }
    public int TaskId { get => taskId; set => taskId = value; }
    public string Title { get => title; set => title = value; }
    public string Description { get => description; set => description = value; }
    public DateTime CreationDate { get => creationDate; set => creationDate = value; }
    public DateTime DueDate { get => dueDate; set => dueDate = value; }
}

public void WriteBoard(string fileName, string content)
{
    File.WriteAllText(BaseBoard + fileName + ".json", content);
    log.Info("The new data saved");
}
c# json file
1个回答
0
投票

您可以使用JavaScriptSerializer将您的类(包含List或其他数据)序列化为JSON

© www.soinside.com 2019 - 2024. All rights reserved.