


How Can I Detect Undefined Properties During JSON Deserialization with Json.NET?
Jan 19, 2025 am 02:51 AMUsing Json.NET to detect undefined properties after deserialization
In JSON-based applications, it is critical to handle deserialization errors efficiently. While the default behavior of Json.NET is to silently fall back to default values, there are situations where exceptions need to be thrown.
To meet this need, Json.NET provides MissingMemberHandling
settings. By setting this property to Error
, any attempt to deserialize a JSON property without a corresponding model property will trigger JsonSerializationException
.
Consider the following code:
using Newtonsoft.Json; using System; namespace JsonFailTest { [JsonObject(MemberSerialization.OptOut)] public class MyJsonObjView { [JsonProperty("MyJsonInt")] public int MyJsonInt { get; set; } } public static class Program { public static void Main(string[] args) { string correctData = @"{'MyJsonInt': 42}"; string wrongData = @"{'SomeOtherProperty': 'fbe8c20b'}"; var goodObj = JsonConvert.DeserializeObject<MyJsonObjView>(correctData); Console.WriteLine(goodObj.MyJsonInt); try { JsonSerializerSettings settings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Error }; var badObj = JsonConvert.DeserializeObject<MyJsonObjView>(wrongData, settings); Console.WriteLine(badObj.MyJsonInt); } catch (Exception ex) { Console.WriteLine($"{ex.GetType().Name}: {ex.Message}"); } } } }
With this modified code, deserialization of the wrongData
object will now result in the following error:
<code>System.Runtime.Serialization.Json.JsonSerializationException: Could not find member 'SomeOtherProperty' on object of type 'MyJsonObjView'. Path 'SomeOtherProperty', line 3, position 33.</code>
This error message clearly identifies the property that caused the deserialization to fail, making debugging more efficient. By using the MissingMemberHandling
setting, you can force strict attribute validation during deserialization to ensure data integrity.
The above is the detailed content of How Can I Detect Undefined Properties During JSON Deserialization with Json.NET?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What are the types of values returned by c language functions? What determines the return value?

What are the definitions and calling rules of c language functions and what are the

C language function format letter case conversion steps

Where is the return value of the c language function stored in memory?

How do I use algorithms from the STL (sort, find, transform, etc.) efficiently?

How does the C Standard Template Library (STL) work?
