0

我有一个 MVC 模型,它根据用户输入生成 JSON 文件,用作自动化工作流的一部分。我遇到的问题是弄清楚如何根据特定的属性值更改对象列表的序列化顺序。

这是我的模型的简化视图:

public class Ticket
{
    public string TicketNumber { get; set; }
    public string TicketName { get; set; }
    public string ApplicationName { get; set; }
    public IList<Jams> JamsList { get; set; }
}

public class RootObject
{
    public Ticket ChangeTicket { get; set; }
}

public class JamsDestination
{
    public string Dev { get; set; }
    public string QA { get; set; }
    public string Prod { get; set; }
}

public class Jams
{
    public string TFSLocation { get; set; }       
    public string FileName { get; set; }
    public string JamsType { get; set; }
    public JamsDestination JamsLocation { get; set; }
}

(我在控制器的 post 部分使用 Newtonsoft.Json 和 SerializeObject() 函数)

JamsType 是从 sql 表(变量、作业、触发器和框)填充的下拉列表。我要做的是确保所有 Jams 更改(在列表中:JamsList)都按确保 JamsType = Box 的所有 Jams 更改最后序列化的顺序进行序列化,以确保它作为一部分正常运行我们的自动化工作流程。有没有办法在视图中设置某种形式的 Javascript 函数以在它们被索引之前重新排序它们?(我的观点是动态表格设置,因此不能保证每次都会有任何 Jams 更改,更不用说有多少与票证相关联)。

4

1 回答 1

0

我意识到我只需要在序列化 JSON 文件之前通过执行以下操作将 Linq 逻辑添加到我的控制器中:

ticket.JamsList = ticket.JamsList.OrderBy(jams => jams.JamsType == "Box").ToList();

这实际上所做的只是在序列化之前重新排序 Jams 更改列表以满足我的条件,而不是更改它序列化列表的顺序(我认为它需要执行的方式)。

于 2018-10-04T13:57:36.553 回答