json.net serilalization char和反序列化意外值

时间:2016-06-20 20:31:08

标签: c# json json.net

我使用newtonsoft dll将对象序列化为MySql Db。

当我序列化char使用时:

JsonConvert.SerializeObject(value, typeof(char))

然后当我访问对象时我使用:

var value = JsonConvert.DeserializeObject<Object>(json);

现在值的类型是String。

我预计该类型将是 char而不是字符串。

如果我序列化任何其他类型,如int,string,uint,bool,enum等&#39;并使用DeserializeObject和泛型Object我得到真正的类型。

那么,有没有方法可以序列化Char,当使用通用Object反序列化时,我得到char而不是字符串?

感谢!

1 个答案:

答案 0 :(得分:0)

首先,我两年来一直在使用Newtonsoft的JSON库,当序列化一个对象时,我从未定义过第二个参数,到目前为止我没有遇到任何问题。

您需要通过定义目标类型来反序列化Json对象。因此,如果您希望它最终成为一个字符,那么您的代码应如下所示;

Event.all.select do |e|
  (e.date + e.training.update_frequency.days) < Date.today
end