如何将JwtSecurityToken的Payload提取为字符串或字典?
解决方案
1. 遍历Payload的键值对
JwtPayload(即token.Payload的实际类型)本身实现了IDictionary<string, object>接口,无需额外的Items属性,直接通过foreach就能遍历所有键值对:
foreach (var keyValuePair in token.Payload) { string key = keyValuePair.Key; object value = keyValuePair.Value; // 按需处理键值对 }
如果需要转换成标准Dictionary<string, object>类型,用Linq即可快速实现:
using System.Linq; var payloadDict = token.Payload.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
2. 将Payload转换为目标JSON字符串
直接借助序列化工具就能把token.Payload转换成你需要的JSON格式,两种常用实现方式如下:
方式一:使用.NET内置的System.Text.Json
using System.Text.Json; string payloadJson = JsonSerializer.Serialize(token.Payload); // 输出结果:{"attributes":{},"ttl":0,"userId":"user1@gmail.com"}
方式二:使用Newtonsoft.Json(Json.NET)
如果项目中已经引用了Newtonsoft.Json包,也可以用它来序列化:
using Newtonsoft.Json; string payloadJson = JsonConvert.SerializeObject(token.Payload);
内容的提问来源于stack exchange,提问作者Bar
相关产品推荐
相关产品推荐

