finds.dev← search

// the find

JamesNK/Newtonsoft.Json

★ 11,315 · C# · MIT · updated Apr 2026

Json.NET is a popular high-performance JSON framework for .NET

Newtonsoft.Json is the JSON library that dominated .NET for over a decade before System.Text.Json shipped in .NET Core 3. It's still the right choice when you need LINQ-to-JSON, deep serialization customization via contract resolvers, or you're maintaining a legacy codebase that can't absorb a migration.

The contract resolver system is genuinely powerful — you can reshape serialization behavior at runtime in ways System.Text.Json still can't match without source generators. LINQ-to-JSON (JObject/JArray/JToken) is a practical API for working with unknown or dynamic JSON structures. The test suite and fuzzing setup are thorough, which matters for a library parsing untrusted input. Thirteen years of edge cases means the weird stuff — circular references, polymorphic type handling, XML interop — actually works.

It allocates heavily by design; if you're on a hot path and care about allocations, System.Text.Json with Utf8JsonReader will beat it by a wide margin. The library is effectively in maintenance mode — James NK has said as much publicly, so new .NET features (required members, init-only properties, discriminated unions) get partial or no support. TypeNameHandling with untrusted input is a well-documented deserialization gadget vector; the docs warn about it, but people still ship it wrong. If you're starting a new .NET 8+ project, you're picking this for compatibility reasons, not because it's the better tool.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →