-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數組的扁平化? –