我正在运行的测试只是将.net对象序列化为json字符串。然后我接受该字符串并尝试将其反序列化为.net对象。正在序列化的字符串看起来不错,但由于某种原因,反序列化在两个属性上失败,一个是int和一个DateTime
这些是正在使用的.net属性:
public string TokenString { get; set; }
public TokenUsage TokenUsage { get; set; }
public string TokenType { get; set; }
public string UserId { get; set; }
public DateTime Expires { get; private set; }
public int ExpiresIn { get; private set; }
这是被序列化的json:
{
"TokenString":"encryptedtoken",
"TokenUsage":300,
"TokenType":"Bearer",
"UserId":"myId",
"Expires":"2013-07-05T11:28:18.4179133Z",
"ExpiresIn":3600,
"IsExpired":false
}
这是检查员,在对该字符串进行反序列化之后:
如你所见,大多数事情都很好。令牌使用(枚举)似乎甚至正确反序列化。我没有在序列化/反序列化区域做任何花哨的事情。只需JsonConvert.Serialize(myObject)
和JsonConvert.Deserialize<MyObject>(jsonString)
有什么想法吗?
答案 0 :(得分:4)
这两个领域有私人制定者。如果您想使用私人制定者,那么您可以更新合约解析程序以允许此操作,如this answer中所述。
还有一些其他技术here。
最简单的方法是使用[JsonProperty]
标记您的属性,如下所示:
[JsonProperty]
public DateTime Expires { get; private set; }
[JsonProperty]
public int ExpiresIn { get; private set; }