【发布时间】:2017-02-28 13:33:26
【问题描述】:
我有一个序列化的 JSON 字符串 serializedClaims -
var claims = new List<Claim>();
claims.Add(new Claim("MakerId", "939393", ClaimValueTypes.String));
claims.Add(new Claim(ClaimTypes.DateOfBirth, "1956-03-08", ClaimValueTypes.Date));
var serializedClaims = JsonConvert.SerializeObject(claims);
现在我想将 serializedClaims 反序列化回 List<Claim>。
怎么做?
【问题讨论】:
-
JsonConvert.DeserializeObject<List<Claim>>(serializedClaims);不起作用吗? -
不,它没有,错误“无法找到 System.Security.Claims.Claim 的构造函数”
-
@GilliVilla 您必须将构造函数添加到您的
Claim类中。 -
具体来说,你必须添加一个默认构造函数,所以
public Claim() {...}。这是因为在幕后,JsonConvert正在迭代serializedClaims中的 JSON 对象,并且对于每个对象,使用默认构造函数创建一个新的Claim,并使用反射来使用类似命名的条目填充该对象的属性JSON 对象。
标签: c# .net json asp.net-mvc serialization