What C# serializer attributes does the tool support?▾
The tool supports both Newtonsoft.Json ([JsonProperty("key")]) and System.Text.Json ([JsonPropertyName("key")]). Choose the one matching your project's NuGet dependency. System.Text.Json is built into .NET 5 and later; Newtonsoft is still common in older or ASP.NET Core projects.
How does the tool handle JSON arrays at the root level?▾
If the root JSON value is an array, the tool inspects the first element to determine the item type and wraps the whole thing in a List<RootObject>. You can then rename RootObject to match your domain entity.
Will it generate nullable types for missing properties?▾
Yes, when nullable reference types are enabled. Properties whose values are null in the sample JSON are emitted as string? or ClassName? rather than string or ClassName. This requires C# 8 or later with <Nullable>enable</Nullable> in your .csproj.
How are JSON numbers mapped to C# numeric types?▾
Integer values within the int range become int; values outside that range become long. Numbers with decimal points become double. If you need decimal for financial values, you will need to manually change those properties after copying the output.
Does the tool handle ISO 8601 date strings as DateTime?▾
Yes. Strings matching ISO 8601 format (e.g., 2024-06-15T10:30:00Z) are inferred as DateTime rather than string, which matches what JSON.NET and System.Text.Json deserialize them to by default.
Can I use the output directly in ASP.NET Core?▾
Yes. The generated classes are plain C# POCOs with no framework dependencies beyond the serialization attribute namespace. They work with model binding, Swagger schema generation, and unit tests without modification.
What happens if two nested objects have the same shape?▾
The tool generates separate classes for each unique JSON key path, so two objects named address under different parent keys will produce two class definitions. You can manually merge them into one class if the shapes are identical.
Does the tool handle GUIDs and UUIDs?▾
Yes. Strings matching the standard UUID/GUID pattern (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) are mapped to Guid rather than string, which integrates cleanly with .NET's Guid type and EF Core model mappings.