我有一个名为 custom:events_permission 的 aws cognito 自定义属性,它将是这样的
[
{
"id":"48d258b7-8949-41z4-815a-f141487a6de1",
"name":"event name",
"user_id":"4eef6471-9a79-40r1-qw95-f22974f492d6",
"role":"exhibitor-admin",
"exhibitor_account_id":"42e812fe-f7ac-48fe-8a15-a0cb80c3ab59",
"permissions":[
"exh-manual:['view','edit','add']",
"exh-leads:['*']",
"exh-usr:['*']"
]
}
]
我有一个名为 UserDto 的 DTO 对象:
public class UserDto
{
public string ExhibitorId { get; set; }
public string UserId { get; set; }
public string Type { get; set; }
public string TenantId { get; set; }
public string Role { get; set; }
public string Permissions { get; set; }
}
我如何使用automapper将ExhibitorId映射到exhibitor_account_id,将Permissions映射到权限等等。
关注: 根据附加的 JSON 和
UserDto
,Permissions
应使用 List<string>
类型而不是 string
。除非您使用 string
类型的原因是您想要返回 Permissions
的序列化 JSON 数组。
如果您要从 JSON 中提取数据(反序列化),则可以使用 JSON 库,例如 System.Text.Json、Newtonsoft.Json 等,而无需 AutoMapper。
对于我的示例,我使用的是 System.Text.Json 库。
public class UserDto
{
[JsonPropertyName("exhibitor_account_id")]
public string ExhibitorId { get; set; }
public string UserId { get; set; }
public string Type { get; set; }
public string TenantId { get; set; }
public string Role { get; set; }
public List<string> Permissions { get; set; }
}
JsonNamingPolicy.SnakeCaseLower
List<UserDto> users = JsonSerializer.Deserialize<List<UserDto>>(/* JSON string value */, new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower
});