假设我有这个 JSON 字符串
{"name": "myname", "id":12345, "passs":"configpass"}
现在通过是一个错字。如果我的序列化代码(我可以使用 json.net 或 system.web 中的内置代码)有一个不在我的类中的键(通过),我希望它抛出异常。这样,愚蠢的错别字不会引起挫败感。
对于Json.Net序列化程序,您可以使用JsonSerializerSettings中的MissingMemberHandling
[TestFixture]
public class JsonTests
{
[TestCase(@"{""name"": ""myname"", ""id"":12345, ""passs"":""configpass""}", ExpectedException = typeof(JsonSerializationException))]
[TestCase(@"{""name"": ""myname"", ""id"":12345, ""pass"":""configpass""}")]
public void TestName(string arg1)
{
JsonSerializer jsonSerializer = JsonSerializer.Create(
new JsonSerializerSettings {MissingMemberHandling = MissingMemberHandling.Error});
Credentials credentials = jsonSerializer.Deserialize<Credentials>(new JsonTextReader(new StringReader(arg1)));
}
}
public class Credentials
{
public string Name { get; set; }
public int Id { get; set; }
public string Pass { get; set; }
}