C#JSON - 根据条件序列化对象

时间:2014-10-06 13:51:36

标签: c# json

我有代表我所选用户的字符串列表。

我想序列化一个JSON,其中一个属性是Selected。如果用户在List中,则为true,如果不在,则为false。

现在我有这个:

ViewBag.Json = JsonConvert.SerializeObject(new
            {
                Utilizadores = db.Utilizador.Select(u => new { Id = u.Id, Nome = u.Nome, Info = u.NumMecanografico, Selected = false })
            });

最终结果示例:

我想要这样的东西,想象用户1和2都在列表中。我总共有4个用户。

Utilizadores = [Id:1, Nome: User1, Selected: true],[Id:2, Nome: User2, Selected: true],[Id:3, Nome: User3, Selected: false],[Id:4, Nome: User4, Selected: false]

像这样。

现在我不知道我怎么能在这里做到这一点。任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:1)

只需添加 Where 选择器。

ViewBag.Json = JsonConvert.SerializeObject(new
{
     Utilizadores = db.Utilizador.Where(u => u.Selected).Select(u => u...)
});

答案 1 :(得分:1)

我解释了您的问题"您有List个选定用户,因此如果用户在列表中,则JSON属性Selected为真 "

IList<string> selectedUsers = ... //The list of selected usernames
ViewBag.Json = JsonConvert.SerializeObject(new
            {
                Utilizadores = db.Utilizador.Select(u => new { Id = u.Id, Nome = u.Nome, Info = u.NumMecanografico, Selected = selectedUsers.Contains(u.Nome) })
            });