【发布时间】:2012-11-07 15:40:38
【问题描述】:
在我正在进行的项目中,我们开始使用 Json.Net 库。
但是,我刚刚发现 json.net 在字符串类型上是“松散的”。
这是一个例子:
DTO 类
[JsonObject]
public class DTO
{
[JsonProperty]
public string type;
}
反序列化
byte[] rawBody = GetBytes(@"{""type"":true}");
using (MemoryStream ms = new MemoryStream(rawBody))
{
using (StreamReader sr = new StreamReader(ms))
{
var serializer = new JsonSerializer();
return serializer.Deserialize(sr, typeof(DTO));
}
}
这会将“type”属性反序列化为“True”。但是,我希望它会失败并抛出异常,因为存在类型不匹配。 如果我在 json 中将 true 替换为 1,它的作用相同。属性“类型”的值为“1”。
问题:
有没有办法强制执行严格的序列化?
除了字符串之外,还有其他类型可以像我们在这里看到的那样进行隐式转换吗?
谢谢。
JF
【问题讨论】:
标签: .net wcf serialization json.net deserialization