-1
我想序列化一个角色列表中的角色返回到角客户端的标记。列表<string>序列化为字符串,而不是与json.net json数组
在C#中的代码是:
List<Claim> roles = oAuthIdentity.Claims.Where(c => c.Type == ClaimTypes.Role).ToList();
var serialRoles = Newtonsoft.Json.JsonConvert.SerializeObject(roles.Select(x => x.Value));
AuthenticationProperties properties = CreateProperties(user.UserName, serialRoles);
CreateProperties方法:
public static AuthenticationProperties CreateProperties(string userName, string roles)
{
IDictionary<string, string> data = new Dictionary<string, string>
{
{ "userName", userName },
{ "roles", roles }
};
return new AuthenticationProperties(data);
}
我的问题是我想产生类似:
{
....
"roles": ["Administrator","Sales"],
....
}
,但我将角色作为字符串接收而不是数组:
{
....
"roles":"[\"Administrator\",\"Sales\"]",
....
}
有什么想法吗? Regards
你是否会再次序列化'AuthenticationProperties'? –
你如何生成最终的JSON?你在序列化什么对象? –
这不是代码的任何其他部分的问题。它不是令牌传递的问题,因为问题出现在SerializeObject调用中[var serialRoles = Newtonsoft.Json.JsonConvert.SerializeObject(roles.Select(x => x.Value ));]。可以从json.net的一些选项?它是json.net数组的扁平化? –