{"slug": "system-text-json", "name": "System.Text.Json", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 5, "warners": 1, "score": 1.931, "rising": -0.98, "first": "2025-11-12", "latest": "2026-04-14", "why": "for that you can use source generators, which also offer better performance.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 1}, "spark": [2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "for that you can use source generators, which also offer better performance.", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/overview", "pricing": "", "aliases": ["System.Text.Json"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 764312193, "item_id": 47769512, "url": "https://news.ycombinator.com/item?id=47769512", "by": "Adachi91", "date": "2026-04-14", "stance": "recommend", "quote": "We have text.json now", "excerpt": "I agree with you, almost all .NET code I write is within the .NET framework, yet when I look at C# repos, it's disheartening to see so many (new) projects just NuGet this NuGet that. We have text.json now but I still see people use Newtonsoft JSON. There's old repo's out there that should be archived and deprecated, yet I see new games use it when the repo is very questionable with automated whitespace or comment com", "context": "", "use_case": "", "switched_from": "", "story": "Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them"}, {"id": 734486080, "item_id": 45905380, "url": "https://news.ycombinator.com/item?id=45905380", "by": "orphea", "date": "2025-11-12", "stance": "recommend", "quote": "No, not plenty", "excerpt": "No, not plenty: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?pivots=dotnet-10-0#table-of-differences", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}, {"id": 734417200, "item_id": 45901075, "url": "https://news.ycombinator.com/item?id=45901075", "by": "alexandrehtrb", "date": "2025-11-12", "stance": "recommend", "quote": "for that you can use source generators, which also offer better performance.", "excerpt": "Most reflection usage is for JSON (de)serialization and for that you can use source generators, which also offer better performance. https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 734420496, "item_id": 45901281, "url": "https://news.ycombinator.com/item?id=45901281", "by": "anonymars", "date": "2025-11-12", "stance": "warn", "quote": "they stubbornly insisted on reinventing the wheel", "excerpt": "Last I checked they stubbornly insisted on reinventing the wheel and ignoring everything in System.Runtime.Serialization so you had to redecorate everything with their new attributes. For example https://github.com/dotnet/runtime/issues/29975. So we stuck with Newtonsoft for the time being.", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}]}], "who": [], "tags": [], "use_cases": [], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=45888620", "title": ".NET 10", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=47755629", "title": "Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46666085", "title": "Command-line Tools can be 235x Faster than your Hadoop Cluster (2014)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 2, "warn": 1}, "2025-12": {}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 764312193, "item_id": 47769512, "url": "https://news.ycombinator.com/item?id=47769512", "by": "Adachi91", "date": "2026-04-14", "stance": "recommend", "quote": "We have text.json now", "excerpt": "I agree with you, almost all .NET code I write is within the .NET framework, yet when I look at C# repos, it's disheartening to see so many (new) projects just NuGet this NuGet that. We have text.json now but I still see people use Newtonsoft JSON. There's old repo's out there that should be archived and deprecated, yet I see new games use it when the repo is very questionable with automated whitespace or comment com", "context": "", "use_case": "", "switched_from": "", "story": "Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them"}, {"id": 746707136, "item_id": 46669196, "url": "https://news.ycombinator.com/item?id=46669196", "by": "bob1029", "date": "2026-01-18", "stance": "neutral", "quote": "https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/use-utf8jsonreader", "excerpt": "https://devblogs.microsoft.com/dotnet/the-convenience-of-system-text-json/#large-document https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/use-utf8jsonreader", "context": "", "use_case": "", "switched_from": "", "story": "Command-line Tools can be 235x Faster than your Hadoop Cluster (2014)"}, {"id": 734486080, "item_id": 45905380, "url": "https://news.ycombinator.com/item?id=45905380", "by": "orphea", "date": "2025-11-12", "stance": "recommend", "quote": "No, not plenty", "excerpt": "No, not plenty: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?pivots=dotnet-10-0#table-of-differences", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}, {"id": 734420496, "item_id": 45901281, "url": "https://news.ycombinator.com/item?id=45901281", "by": "anonymars", "date": "2025-11-12", "stance": "warn", "quote": "they stubbornly insisted on reinventing the wheel", "excerpt": "Last I checked they stubbornly insisted on reinventing the wheel and ignoring everything in System.Runtime.Serialization so you had to redecorate everything with their new attributes. For example https://github.com/dotnet/runtime/issues/29975. So we stuck with Newtonsoft for the time being.", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}, {"id": 734417200, "item_id": 45901075, "url": "https://news.ycombinator.com/item?id=45901075", "by": "alexandrehtrb", "date": "2025-11-12", "stance": "recommend", "quote": "for that you can use source generators, which also offer better performance.", "excerpt": "Most reflection usage is for JSON (de)serialization and for that you can use source generators, which also offer better performance. https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation", "context": "", "use_case": "", "switched_from": "", "story": ".NET 10"}]}