【发布时间】:2015-03-20 18:13:48
【问题描述】:
我正在开发一个 JSON 驱动的项目,我想为 SessionManager 对象提供一个动态的权限列表。虽然我可以使用一组键值对来获得权限,但我想知道是否可以删除属性名称,以便 key 是 Permission 值和 value 是IsAllowed 值。
public class SessionPermission
{
public string Permission { get; set; }
public bool IsAllowed { get; set; }
}
public class SessionManager
{
public string UserName { get; set; }
public string Password { get; set; }
public List<SessionPermission> Permissions { get; set; }
public void SetPermissions()
{
Permissions = new List<SessionPermission>
{
new SessionPermission {Permission = "CreateUsers", IsAllowed = false},
new SessionPermission {Permission = "EditUsers", IsAllowed = false},
new SessionPermission {Permission = "EditBlog", IsAllowed = true}
};
}
}
当我生成 JSON 时,它会输出一组权限:
{
"Permission": "CreateUsers",
"IsAllowed": false
},
我想知道如何覆盖序列化,以便它使用值而不是属性名称。
{
"CreateUsers": false
},
【问题讨论】:
-
你能把
Permissions改成Dictionary<string, bool>吗? -
你说得很好。
-
这样做可能会使序列化按您希望的方式工作
-
@DLeh 如果按键重复怎么办??
-
键不能在字典中重复。如果您尝试向字典中添加重复键,则会引发错误
标签: c# json asp.net-mvc serialization json.net