如何解决JsonReaderException:在C#中解析时遇到意外字符
所以我正在尝试解码我的jwt令牌。我刚刚向它添加了一个名为“ userGroupList”的新对象。基本上,这是一个使用JsonConvert.SerializeObject
转换为字符串的类。问题是当我现在尝试解码我的jwt令牌时,出现此错误:
Newtonsoft.Json.JsonReaderException:'解析值时遇到意外字符:[。路径“ userGroupList”,第1行,
这是创建jwt令牌的方式:
JsonConvert.SerializeObject(Logics.GetJwtToken(new JwtModel { UserId = user.UserId,UserName = user.UserName,Rank = user.Rank,UserGroupList = JsonConvert.SerializeObject(user.UserGroups)}));
这是代码:
public static JwtModel ValidateJwtTokenWithResult(string token)
{
try
{
string[] parts = token.Split('.');
string payload = parts[0] + "." + parts[1];
string hash = parts[2];
if (ConfirmToken(payload,hash,"secretthing"))
{
JwtModel basejwt = JsonConvert.DeserializeObject<JwtModel>(Base64UrlEncoder.Decode(parts[1]));
return basejwt;
}
return null;
}
catch
{
return null;
}
}
public class JwtModel
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Rank { get; set; }
public string UserGroupList { get; set; }
}
这是我要反序列化的令牌:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0IiwidXNlck5hbWUiOiJSYXltb25kIEZ1bmciLCJyYW5rIjoiTWFuYWdlciIsInVzZXJHcm91cExpc3QiOlt7IklkIjoxLCJOYW1lIjoiQ29udGFjdHMifSx7IklkIjoyLCJOYW1lIjoiRnVuZHMifSx7IklkIjozLCJOYW1lIjoiQ29tcGxpYW5jZSJ9XX0.Aq6UQJkBslh10Fxkr8MZjuxgqHZxmpWv295kqpG8wo8 =
翻译为:
{
"userId": "2","userName": "John Smith","rank": "Manager","userGroupList": [
{
"Id": 1,"Name": "Contacts"
},{
"Id": 2,"Name": "Funds"
},{
"Id": 3,"Name": "Compliance"
}
]
}
我对C#还是很陌生。我在做什么错了?
解决方法
更改
public string UserGroupList { get; set; }
到
public IList<UserGroup> UserGroupList { get; set; }
然后为UserGroup
class UserGroup {
public int Id {get; set;}
public string Name {get; set;}
}
UserId
也看起来像字符串,而不是整数
public int UserId { get; set; }
到
public string UserId { get; set; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。